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

CampaignResource.java

  • user avatar
    Julian Horner authored
    3e1f3b8c
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    CampaignResource.java 1.95 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)
        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;
        }
    }