1 package org.woehlke.greenshop.backend.catalog;
2
3 import org.springframework.stereotype.Controller;
4 import org.springframework.ui.Model;
5 import org.springframework.web.bind.annotation.PathVariable;
6 import org.springframework.web.bind.annotation.RequestMapping;
7 import org.springframework.web.bind.annotation.RequestMethod;
8 import org.woehlke.greenshop.backend.AdminMenuCategory;
9 import org.woehlke.greenshop.oodm.catalog.entities.Language;
10 import org.woehlke.greenshop.oodm.catalog.entities.Review;
11 import org.woehlke.greenshop.oodm.catalog.model.ReviewProduct;
12 import org.woehlke.greenshop.oodm.catalog.service.LanguageService;
13 import org.woehlke.greenshop.oodm.catalog.service.ReviewService;
14
15 import javax.inject.Inject;
16 import java.util.List;
17
18
19
20
21 @Controller
22 public class ReviewController {
23
24 @Inject
25 private LanguageService languageService;
26
27 @Inject
28 private ReviewService reviewService;
29
30
31 @RequestMapping(value = "/admin/reviews", method = RequestMethod.GET)
32 public String reviews(Model model){
33 int menuCategory = AdminMenuCategory.CATALOG.ordinal();
34 model.addAttribute("menuCategory",menuCategory);
35 Language language = languageService.findLanguageByCode("en");
36 List<ReviewProduct> reviews = reviewService.getAllReviews(language);
37 model.addAttribute("reviews",reviews);
38 ReviewProduct thisReview = null;
39 if(reviews.size()>0){
40 thisReview = reviews.iterator().next();
41 }
42 model.addAttribute("thisReview",thisReview);
43 int averageRating = thisReview.getReview().getReview().getRating();
44 model.addAttribute("averageRating",averageRating);
45 return "admin/catalog/reviews";
46 }
47
48 @RequestMapping(value = "/admin/reviews/{reviewId}", method = RequestMethod.GET)
49 public String reviewsId(@PathVariable long reviewId,Model model){
50 int menuCategory = AdminMenuCategory.CATALOG.ordinal();
51 model.addAttribute("menuCategory",menuCategory);
52 Language language = languageService.findLanguageByCode("en");
53 List<ReviewProduct> reviews = reviewService.getAllReviews(language);
54 model.addAttribute("reviews",reviews);
55 ReviewProduct thisReview = null;
56 if(reviews.size()>0){
57 thisReview = reviewService.getReviewById(reviewId, language);
58 }
59 model.addAttribute("thisReview",thisReview);
60 int averageRating = thisReview.getReview().getReview().getRating();
61 model.addAttribute("averageRating",averageRating);
62 return "admin/catalog/reviews";
63 }
64
65 @RequestMapping(value = "/admin/reviews/setInactive/{reviewId}", method = RequestMethod.GET)
66 public String reviewsSetInactive(@PathVariable long reviewId,Model model){
67 int menuCategory = AdminMenuCategory.CATALOG.ordinal();
68 model.addAttribute("menuCategory",menuCategory);
69 Language language = languageService.findLanguageByCode("en");
70 ReviewProduct thisReview = reviewService.getReviewById(reviewId, language);
71 Review review = thisReview.getReview().getReview();
72 review.setStatus(0);
73 reviewService.update(review);
74 thisReview = reviewService.getReviewById(reviewId, language);
75 model.addAttribute("thisReview",thisReview);
76 List<ReviewProduct> reviews = reviewService.getAllReviews(language);
77 model.addAttribute("reviews",reviews);
78 int averageRating = thisReview.getReview().getReview().getRating();
79 model.addAttribute("averageRating",averageRating);
80 return "admin/catalog/reviews";
81 }
82
83 @RequestMapping(value = "/admin/reviews/setActive/{reviewId}", method = RequestMethod.GET)
84 public String reviewsSetActive(@PathVariable long reviewId,Model model){
85 int menuCategory = AdminMenuCategory.CATALOG.ordinal();
86 model.addAttribute("menuCategory",menuCategory);
87 Language language = languageService.findLanguageByCode("en");
88 ReviewProduct thisReview = reviewService.getReviewById(reviewId, language);
89 Review review = thisReview.getReview().getReview();
90 review.setStatus(1);
91 reviewService.update(review);
92 thisReview = reviewService.getReviewById(reviewId, language);
93 model.addAttribute("thisReview",thisReview);
94 List<ReviewProduct> reviews = reviewService.getAllReviews(language);
95 model.addAttribute("reviews",reviews);
96 int averageRating = thisReview.getReview().getReview().getRating();
97 model.addAttribute("averageRating",averageRating);
98 return "admin/catalog/reviews";
99 }
100 }