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

DonationResource.java

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    DonationResource.java 2.56 KiB
    package de.dpunkt.myaktion.resources;
    
    import java.math.BigDecimal;
    import java.util.List;
    
    import javax.inject.Inject;
    import javax.ws.rs.Consumes;
    import javax.ws.rs.FormParam;
    import javax.ws.rs.GET;
    import javax.ws.rs.POST;
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    import javax.ws.rs.core.Response;
    
    import de.dpunkt.myaktion.model.Account;
    import de.dpunkt.myaktion.model.Donation;
    import de.dpunkt.myaktion.model.Donation.Status;
    import de.dpunkt.myaktion.services.DonationService;
    import de.dpunkt.myaktion.services.exceptions.ObjectNotFoundException;
    
    @Path("/")
    public class DonationResource {
        @Inject
        private DonationService donationService;
    
        @GET
        @Path("/organizer/donation/list/{campaignId}")
        @Produces(MediaType.APPLICATION_JSON)
        public List<Donation> getDonationList(@PathParam(value = "campaignId") Long campaignId) {
            List<Donation> donations = donationService.getDonationList(campaignId);
            donations.forEach(donation -> donation.setCampaign(null));
    
            return donations;
        }
    
        @POST
        @Path("/donation/{campaignId}")
        @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
        public void addDonation(@PathParam(value = "campaignId") Long campaignId,
                @FormParam(value = "donorName") String donorName,
                @FormParam(value = "amount") Double amount, @FormParam(value = "iban") String iban,
                @FormParam(value = "nameOfBank") String nameOfBank,
                @FormParam(value = "receiptRequested") Boolean receiptRequested) {
            Donation donation = new Donation();
            donation.setDonorName(donorName);
            donation.setAmount(new BigDecimal(amount));
    
            Account account = new Account();
            account.setIban(iban);
            account.setName(donorName);
            account.setNameOfBank(nameOfBank);
    
            donation.setAccount(account);
            donation.setReceiptRequested(receiptRequested);
            donation.setStatus(Status.IN_PROCESS);
    
            donationService.addDonation(campaignId, donation);
        }
    
        @GET
        @Path("/donation/list/{campaignId}")
        @Produces(MediaType.APPLICATION_JSON)
        public Response getDonationListPublic(@PathParam(value = "campaignId") Long campaignId) {
            List<Donation> donations;
            try {
                donations = donationService.getDonationListPublic(campaignId);
                
                return Response.ok(donations).build();
            } catch (ObjectNotFoundException e) {
                return Response.status(javax.ws.rs.core.Response.Status.NOT_FOUND).build();
            }
        }
    }