- Timestamp:
- 09/04/21 12:17:17 (3 years ago)
- Branches:
- master
- Children:
- 0f4f552
- Parents:
- 5306751
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/it/finki/charitable/controller/ModeratorController.java
r5306751 rab49338 1 1 package it.finki.charitable.controller; 2 2 3 import it.finki.charitable.entities.AppUser; 4 import it.finki.charitable.entities.DonationPost; 3 import it.finki.charitable.entities.*; 5 4 import it.finki.charitable.services.DonationPostService; 6 5 import it.finki.charitable.services.EmailService; 6 import it.finki.charitable.services.ReasonService; 7 import it.finki.charitable.services.ReportPostService; 7 8 import org.springframework.security.core.context.SecurityContextHolder; 8 9 import org.springframework.stereotype.Controller; … … 13 14 14 15 import java.io.File; 16 import java.util.ArrayList; 15 17 import java.util.List; 16 18 … … 20 22 private final DonationPostService donationPostService; 21 23 private final EmailService emailService; 24 private final ReportPostService reportPostService; 25 private final ReasonService reasonService; 22 26 23 public ModeratorController(DonationPostService donationPostService, EmailService emailService ) {27 public ModeratorController(DonationPostService donationPostService, EmailService emailService, ReportPostService reportPostService, ReasonService reasonService) { 24 28 this.donationPostService = donationPostService; 25 29 this.emailService = emailService; 30 this.reportPostService = reportPostService; 31 this.reasonService = reasonService; 26 32 } 27 33 … … 48 54 model.addAttribute("createdByFirstName", user.getFirstName()); 49 55 model.addAttribute("createdByLastName", user.getLastName()); 56 if (post.getApproved()) { 57 model.addAttribute("approved", true); 58 } 50 59 return "moderatorPost"; 51 60 } … … 55 64 DonationPost post = donationPostService.getById(postid); 56 65 post.setApproved(true); 66 post.setModerator((Moderator) SecurityContextHolder.getContext().getAuthentication().getPrincipal()); 57 67 donationPostService.save(post); 58 emailService.sendApprovalEmail(post.getUser().getEmail(), "CharitAbleMk: " + post.getTitle() + " has been approved", postid);68 emailService.sendApprovalEmail(post.getUser().getEmail(), "CharitAbleMk: " + post.getTitle() + " has been approved", postid); 59 69 return "redirect:/moderator/approval"; 60 70 } … … 65 75 DonationPost post = donationPostService.getById(postid); 66 76 emailService.sendNoApprovalEmail(post.getUser().getEmail(), "CharitAbleMk: " + post.getTitle() + " has not been approved", description); 67 List<String> fileForDeletion = post.getPhotosForDeletion(); 77 deleteDonationPost(post); 78 return "redirect:/moderator/approval"; 79 } 80 81 @RequestMapping("/moderator/myApprovedPosts") 82 public String myApprovedPosts(Model model) { 83 Moderator moderator = (Moderator) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 84 List<DonationPost> postList = donationPostService.findAllByModerator(moderator); 85 if (postList.size() == 0) { 86 model.addAttribute("noPosts", true); 87 return "postApproval"; 88 } 89 model.addAttribute("postList", postList); 90 return "postApproval"; 91 } 92 93 @RequestMapping("/moderator/report") 94 public String reportedPosts(Model model) { 95 List<ReportPost> postList = reportPostService.findAll(); 96 if (postList.size() == 0) { 97 model.addAttribute("noPosts", true); 98 return "reportedPosts"; 99 } 100 model.addAttribute("postList", postList); 101 return "reportedPosts"; 102 } 103 104 @RequestMapping("/moderator/reportPost") 105 public String report(@RequestParam Long postid, Model model) { 106 ReportPost post = reportPostService.findById(postid); 107 model.addAttribute("post", post); 108 DonationPost donationPost = post.getDonationPost(); 109 AppUser user = donationPost.getUser(); 110 model.addAttribute("createdByFirstName", user.getFirstName()); 111 model.addAttribute("createdByLastName", user.getLastName()); 112 model.addAttribute("report", true); 113 Moderator moderator = post.getDonationPost().getModerator(); 114 model.addAttribute("moderatorFirstName", moderator.getFirstName()); 115 model.addAttribute("moderatorLastName", moderator.getLastName()); 116 117 return "reportPost"; 118 } 119 120 @RequestMapping("/moderator/dismiss") 121 public String dismiss(@RequestParam Long postid) { 122 ReportPost post = reportPostService.findById(postid); 123 deleteReportPost(post); 124 return "redirect:/moderator/reportedPosts"; 125 } 126 127 @RequestMapping("/moderator/deletePost") 128 public String deletePost(@RequestParam Long postid, 129 @RequestParam String description) { 130 ReportPost post = reportPostService.findById(postid); 131 DonationPost donationPost = post.getDonationPost(); 132 emailService.sendDeletionEmail(donationPost.getUser().getEmail(), "CharitAbleMk: " + donationPost.getTitle() + " has been deleted", description); 133 deleteReportPost(post); 134 deleteDonationPost(donationPost); 135 return "redirect:/moderator/approval"; 136 } 137 138 public void deleteDonationPost(DonationPost donationPost) { 139 List<String> fileForDeletion = donationPost.getPhotosForDeletion(); 68 140 for (String f : fileForDeletion) { 69 141 File file = new File(f); 70 142 file.delete(); 71 143 } 72 donationPostService.delete(post); 73 return "redirect:/moderator/approval"; 144 donationPostService.delete(donationPost); 145 } 146 147 public void deleteReportPost(ReportPost reportPost) { 148 List<Reason> reasons = new ArrayList<>(reportPost.getReasons()); 149 if (reportPost.getReasons().size() > 0) { 150 reportPost.getReasons().subList(0, reportPost.getReasons().size()).clear(); 151 } 152 reportPostService.save(reportPost); 153 for(Reason r: reasons) { 154 reasonService.delete(r); 155 } 156 reportPostService.delete(reportPost); 74 157 } 75 158
Note:
See TracChangeset
for help on using the changeset viewer.