Skip to content
Snippets Groups Projects
Select Git revision
  • a14fdc0c14b49af3f788eec28ab805d0d7287348
  • master default protected
  • feature/ogm_mongodb
  • feature/chapter9
  • feature/chapter8
  • feature/chapter6
  • feature/chapter4
7 results

CampaignResource.java

Blame
  • user avatar
    Julian Horner authored
    a14fdc0c
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    CampaignResource.java 1.98 KiB
    package de.dpunkt.myaktion.resources;
    
    import java.util.List;
    
    import javax.inject.Inject;
    import javax.ws.rs.Consumes;
    import javax.ws.rs.DELETE;
    import javax.ws.rs.GET;
    import javax.ws.rs.POST;
    import javax.ws.rs.PUT;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    
    import de.dpunkt.myaktion.model.Campaign;
    import de.dpunkt.myaktion.services.CampaignService;
    
    @Path("/organizer/campaign")
    public class CampaignResource {
        @Inject
        private CampaignService campaignService;
    
        @GET
        @Path("/list")
        @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
        public List<Campaign> getAllCampaigns() {
            List<Campaign> allCampaigns = campaignService.getAllCampaigns();
            
            allCampaigns.forEach(campaign -> {
                campaign.setDonations(null);
                campaign.setOrganizer(null);
            });
            
            return allCampaigns;
        }
    
        @DELETE
        @Path("/{campaignId}")
        public void deleteAktion(@PathParam(value = "campaignId") Long campaignId) {
            campaignService.deleteCampaign(campaignId);
        }
    
        @POST
        @Consumes(MediaType.APPLICATION_JSON)
        @Produces(MediaType.APPLICATION_JSON)
        public Campaign addCampaign(Campaign campaign) {
            return campaignService.addCampaign(campaign);
        }
    
        @PUT
        @Path("/{campaignId}")
        @Consumes(MediaType.APPLICATION_JSON)
        @Produces(MediaType.APPLICATION_JSON)
        public Campaign updateCampaign(@PathParam(value = "campaignId") Long campaignId,
                Campaign newCampaign) {
            Campaign campaign = campaignService.getCampaign(campaignId);
            campaign.setName(newCampaign.getName());
            campaign.setDonationMinimum(newCampaign.getDonationMinimum());
            campaign.setTargetAmount(newCampaign.getTargetAmount());
    
            newCampaign = campaignService.updateCampaign(campaign);
            newCampaign.setDonations(null);
            newCampaign.setOrganizer(null);
    
            return newCampaign;
        }
    }