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
No related branches found
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