source: src/main/java/com/example/web/HostEventController.java@ a51a591

Last change on this file since a51a591 was a51a591, checked in by colovik <j.colovik@…>, 14 months ago

final

  • Property mode set to 100644
File size: 5.8 KB
Line 
1package com.example.web;
2
3import com.example.model.*;
4import com.example.repository.*;
5import com.example.service.UserService;
6import org.springframework.format.annotation.DateTimeFormat;
7import org.springframework.stereotype.Controller;
8import org.springframework.ui.Model;
9import org.springframework.web.bind.annotation.GetMapping;
10import org.springframework.web.bind.annotation.PostMapping;
11import org.springframework.web.bind.annotation.RequestParam;
12
13import javax.servlet.http.HttpServletRequest;
14import javax.servlet.http.HttpServletResponse;
15import javax.servlet.http.HttpSession;
16import javax.transaction.Transactional;
17import java.time.LocalDate;
18import java.util.List;
19import java.util.NoSuchElementException;
20
21@Controller
22public class HostEventController {
23
24 private final EventRepository eventRepository;
25 private final UserRepository userRepository;
26 private final LocationRepository locationRepository;
27 private final ClientRepository clientRepository;
28 private final BandRepository bandRepository;
29 private final CateringRepository cateringRepository;
30 private final PhotographerRepository photographerRepository;
31 private final UserService userService;
32
33 private final WaiterRepository waiterRepository;
34 public HostEventController(EventRepository eventRepository, UserRepository userRepository,
35 LocationRepository locationRepository, ClientRepository clientRepository,
36 BandRepository bandRepository, CateringRepository cateringRepository,
37 PhotographerRepository photographerRepository, UserService userService, WaiterRepository waiterRepository) {
38 this.eventRepository = eventRepository;
39 this.userRepository = userRepository;
40 this.locationRepository = locationRepository;
41 this.clientRepository = clientRepository;
42 this.bandRepository = bandRepository;
43 this.cateringRepository = cateringRepository;
44 this.photographerRepository = photographerRepository;
45 this.userService = userService;
46 this.waiterRepository = waiterRepository;
47 }
48
49 @GetMapping("/host_event")
50 public String getHostEventPage(Model model) {
51 model.addAttribute("locations", locationRepository.findAll());
52 model.addAttribute("bands", bandRepository.findAll());
53 model.addAttribute("caterings", cateringRepository.findAll());
54 model.addAttribute("photographers", photographerRepository.findAll());
55 return "host_event";
56 }
57
58 @Transactional
59 @PostMapping("/host_event")
60 public String handleHostEvent(@RequestParam String time,
61 @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date,
62 @RequestParam String location,
63 @RequestParam String type,
64 @RequestParam(required = false) String description,
65 @RequestParam List<Band> bands,
66 @RequestParam List<Catering> caterings,
67 @RequestParam List<Photographer> photographers,
68 HttpServletRequest req,
69 HttpServletResponse resp,
70 HttpSession session) {
71 Event event = null;
72 try {
73 Location location2 = locationRepository.findByAddress(location);
74
75 User user = (User) userService.findByUsername((String) req.getSession().getAttribute("username")).get();
76 Client client = (Client) clientRepository.findById(user.getId()).get();
77 Admin admin = (Admin) userService.findByUsername("admin1").get();
78 admin.setNumber_events(admin.getNumber_events()+1);
79 client.setNumber_events(client.getNumber_events()+1);
80 eventRepository.save(new Event(time, date, location2, type, description, client, bands,caterings, photographers, admin));
81
82 return "redirect:/home?UspeshnoZakazanNastan";
83 } catch (Exception e) {
84 return "redirect:/?error=" + e.getMessage();
85 }
86 }
87
88 @GetMapping("/my_events")
89 public String getEventsForUser(HttpServletRequest req, Model model) {
90 User user = (User) userService.findByUsername((String) req.getSession().getAttribute("username")).get();
91 List<Event> events = null;
92 try {
93 Client client = (Client) clientRepository.findById(user.getId()).get();
94 events = client.getEvent();
95 }
96 catch (NoSuchElementException exception){
97 try{
98 Catering catering = (Catering) cateringRepository.findById(user.getId()).get();
99 events = catering.getEventList();
100 }
101 catch (NoSuchElementException exception1){
102 try {
103 Band band = (Band) bandRepository.findById(user.getId()).get();
104 events = band.getEventList();
105 }
106 catch (NoSuchElementException e){
107 try{
108 Photographer photographer = (Photographer) photographerRepository.findById(user.getId()).get();
109 events = photographer.getEventList();
110 }
111 catch (NoSuchElementException exception2){
112 try{
113 Waiter waiter = (Waiter) waiterRepository.findById(user.getId()).get();
114 events = waiter.getEventList();
115 }
116 catch (NoSuchElementException exception3){
117 events = eventRepository.findAll();
118 }
119 }
120 }
121 }
122 }
123 model.addAttribute("events",events);
124 return "my_events";
125 }
126}
Note: See TracBrowser for help on using the repository browser.