source: Git/src/main/java/com/wediscussmovies/project/web/controller/DiscussionsController.java@ 3ded84d

main
Last change on this file since 3ded84d was 3ded84d, checked in by Test <matonikolov77@…>, 2 years ago

Model-database resolved bugs for mapping

  • Property mode set to 100644
File size: 5.9 KB
Line 
1package com.wediscussmovies.project.web.controller;
2
3import com.wediscussmovies.project.model.*;
4
5import com.wediscussmovies.project.service.DiscussionService;
6import com.wediscussmovies.project.service.MovieService;
7import com.wediscussmovies.project.service.PersonService;
8import com.wediscussmovies.project.service.ReplyService;
9import org.springframework.stereotype.Controller;
10import org.springframework.ui.Model;
11import org.springframework.web.bind.annotation.*;
12
13import javax.servlet.http.HttpServletRequest;
14import java.sql.Date;
15import java.time.LocalDate;
16import java.util.List;
17import java.util.Optional;
18
19@Controller
20@RequestMapping("/discussions")
21public class DiscussionsController {
22 private final DiscussionService discussionService;
23 private final ReplyService replyService;
24 private final MovieService movieService;
25 private final PersonService personService;
26 public DiscussionsController(DiscussionService discussionService, ReplyService replyService, MovieService movieService, PersonService personService) {
27 this.discussionService = discussionService;
28 this.replyService = replyService;
29 this.movieService = movieService;
30 this.personService = personService;
31 }
32
33 @GetMapping("/")
34 public String getDiscussions(@RequestParam(required = false) String titleSearch,
35 Model model){
36 List<Discussion> discussions = discussionService.listAll();
37 if(titleSearch != null && !titleSearch.isEmpty()){
38 discussions = discussionService.listAllByTitle(titleSearch);
39 }
40 model.addAttribute("discussions", discussions);
41 model.addAttribute("contentTemplate", "discussionsList");
42 return "template";
43 }
44
45 @GetMapping("/{id}")
46 public String getDiscussion(
47 @PathVariable Integer id,
48 Model model){
49 Optional<Discussion> discussion = discussionService.findById(id);
50 if(discussion.isEmpty())
51 return "redirect:/discussions";
52 model.addAttribute("discussion", discussion);
53 model.addAttribute("contentTemplate", "discussionsDiscussion");
54 return "template";
55 }
56
57 @GetMapping("/{id}/reply")
58 public String getReplyToDiscussion(
59 @PathVariable Integer id,
60 Model model){
61 Optional<Discussion> discussion = discussionService.findById(id);
62 if(discussion.isEmpty())
63 return "redirect:/discussions";
64 model.addAttribute("discussion", discussion);
65 model.addAttribute("contentTemplate", "discussionsReply");
66 return "template";
67 }
68 @PostMapping("/{id}/reply/confirm")
69 public String getReplyToDiscussionConfirm(
70 @PathVariable Integer id,
71 @RequestParam String text,
72 HttpServletRequest request){
73 Optional<Discussion> discussion = discussionService.findById(id);
74 User user = (User) request.getSession().getAttribute("user");
75 if(user == null){
76 return "redirect:/login";
77 }
78 Date date = Date.valueOf(LocalDate.now());
79 if(discussion.isEmpty())
80 return "redirect:/discussions";
81 //Reply reply = new Reply(discussion.get(), user, date, text);
82 // replyService.save(reply);
83 return "redirect:/discussions/"+id;
84 }
85
86 @GetMapping("/movies/add/{id}")
87 public String getAddDiscussionForMovie(Model model,
88 @PathVariable Integer id,
89 HttpServletRequest request){
90 model.addAttribute("contentTemplate", "discussionsAdd");
91 request.setAttribute("movieId", id);
92 return "template";
93 }
94
95 @PostMapping("/movies/add/confirm")
96 public String getAddDiscussionMovieConfirm(Model model,
97 HttpServletRequest request,
98 @RequestParam String title,
99 @RequestParam String text){
100 User user = (User) request.getSession().getAttribute("user");
101 if(user == null){
102 return "redirect:/login";
103 }
104 Integer movie_id = (Integer) request.getSession().getAttribute("movieId");
105 request.getSession().setAttribute("movieId", null);
106 Optional<Movie> movieOp = movieService.findById(movie_id);
107 if(movieOp.isEmpty())
108 return "redirect:/movies";
109 // Discussion discussion = new Discussion('M',text, title, Date.valueOf(LocalDate.now()),user,movieOp.get(),null);
110 // discussionService.save(discussion);
111 return "redirect:/discussions";
112 }
113
114
115 @GetMapping("/persons/add/{id}")
116 public String getAddDiscussionForPerson(Model model,
117 @PathVariable Integer id,
118 HttpServletRequest request){
119 model.addAttribute("contentTemplate", "discussionsAdd");
120 request.setAttribute("personId", id);
121 return "template";
122 }
123
124 @PostMapping("/persons/add/confirm")
125 public String getAddDiscussionForPersonConfirm(Model model,
126 HttpServletRequest request,
127 @RequestParam String title,
128 @RequestParam String text){
129 User user = (User) request.getSession().getAttribute("user");
130 if(user == null){
131 return "redirect:/login";
132 }
133 Integer person_id = (Integer) request.getSession().getAttribute("personId");
134 Optional<Person> personOp = personService.findById(person_id);
135 request.getSession().setAttribute("personId", null);
136 if(personOp.isEmpty())
137 return "redirect:/discussions";
138
139 // Discussion discussion = new Discussion('P',title, text,Date.valueOf(LocalDate.now()),user,null,personOp.get());
140 // discussionService.save(discussion);
141 return "redirect:/discussions";
142 }
143
144
145}
Note: See TracBrowser for help on using the repository browser.