Skip to content
Snippets Groups Projects
Commit 3e1f3b8c authored by Julian Horner's avatar Julian Horner
Browse files

Finish chapter 9.4.2.1

parent 7a5a6654
Branches feature/chapter8
No related tags found
No related merge requests found
......@@ -7,6 +7,7 @@ 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;
......@@ -46,4 +47,22 @@ public class CampaignResource {
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;
}
}
\ No newline at end of file
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 de.dpunkt.myaktion.model.Account;
import de.dpunkt.myaktion.model.Donation;
import de.dpunkt.myaktion.model.Donation.Status;
import de.dpunkt.myaktion.services.DonationService;
@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);
}
}
......@@ -23,8 +23,8 @@ public interface CampaignService {
void deleteCampaign(Long campaignId);
void updateCampaign(Campaign campaign);
Campaign updateCampaign(Campaign campaign);
Campaign getCampaign(Long campaignId);
//----------------------------------------------------------------------------------------------
......
......@@ -64,15 +64,15 @@ public class CampaignServiceBean implements CampaignService {
Organizer organizer = getLoggedinOrganizer();
campaign.setOrganizer(organizer);
entityManager.persist(campaign);
return campaign;
}
// ----------------------------------------------------------------------------------------------
@Override
public void updateCampaign(Campaign campaign) {
entityManager.merge(campaign);
public Campaign updateCampaign(Campaign campaign) {
return entityManager.merge(campaign);
}
// ----------------------------------------------------------------------------------------------
......@@ -83,14 +83,16 @@ public class CampaignServiceBean implements CampaignService {
entityManager.remove(managedCampaign);
}
@Override
public void deleteCampaign(Long campaignId) {
Campaign managedCampaign = getCampaign(campaignId);
entityManager.remove(managedCampaign);
}
@Override
public Campaign getCampaign(Long campaignId) {
Campaign managedCampaign = entityManager.find(Campaign.class, campaignId);
return managedCampaign;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment