source: src/main/java/mk/ukim/finki/busngo/web/BiletController.java@ bde8b13

Last change on this file since bde8b13 was bde8b13, checked in by ppaunovski <paunovskipavel@…>, 6 months ago

All 3 main use cases implemented.

  1. Starting a commute
  2. Writing a ticket
  3. Starting an instance of a Bus Line
  • Property mode set to 100644
File size: 2.8 KB
Line 
1package mk.ukim.finki.busngo.web;
2
3import mk.ukim.finki.busngo.model.entities.Patnik;
4import mk.ukim.finki.busngo.model.enums.BILET_STATUS;
5import mk.ukim.finki.busngo.model.exceptions.InvalidPatnikIdException;
6import mk.ukim.finki.busngo.service.AuthService;
7import mk.ukim.finki.busngo.service.BiletService;
8import mk.ukim.finki.busngo.service.PatnikService;
9import mk.ukim.finki.busngo.service.TipBiletService;
10import org.springframework.security.core.Authentication;
11import org.springframework.stereotype.Controller;
12import org.springframework.ui.Model;
13import org.springframework.web.bind.annotation.GetMapping;
14import org.springframework.web.bind.annotation.PostMapping;
15import org.springframework.web.bind.annotation.RequestMapping;
16import org.springframework.web.bind.annotation.RequestParam;
17
18import java.time.LocalDateTime;
19
20@Controller
21@RequestMapping("/bilet")
22public class BiletController {
23 private final BiletService biletService;
24 private final TipBiletService tipBiletService;
25 private final AuthService authService;
26 private final PatnikService patnikService;
27
28 public BiletController(BiletService biletService, TipBiletService tipBiletService, AuthService authService, PatnikService patnikService) {
29 this.biletService = biletService;
30 this.tipBiletService = tipBiletService;
31 this.authService = authService;
32 this.patnikService = patnikService;
33 }
34
35 @GetMapping()
36 public String getAllBileti(@RequestParam(required = false) Long id,
37 @RequestParam(required = false) BILET_STATUS status,
38 Model model,
39 Authentication authentication){
40 model.addAttribute("bodyContent", "listBileti");
41 Patnik patnik = null;
42 try{
43 model.addAttribute("bileti", biletService.findAllByPatnikEmail(authentication.getName()));
44 }
45 catch (InvalidPatnikIdException e){
46 model.addAttribute("bodyContent", "listBileti");
47 model.addAttribute("hasError", true);
48 model.addAttribute("error", e.getMessage());
49 return "master-template";
50 }
51
52 return "master-template";
53 }
54
55 @GetMapping("/kupi")
56 public String getKupiPage(Model model){
57 model.addAttribute("bodyContent", "kupiBilet");
58 model.addAttribute("tipbileti", tipBiletService.listAll());
59 return "master-template";
60 }
61
62 @PostMapping("/kupi")
63 public String kupiBilet(@RequestParam Long tipbilet, Authentication authentication){
64 biletService.buy(tipbilet, LocalDateTime.now(), BILET_STATUS.INACTIVE, authentication.getName());
65 return "redirect:/bilet";
66 }
67
68// @GetMapping("/encode")
69// public String encode(){
70// biletService.encode();
71// return "redirect:/bilet";
72// }
73
74}
Note: See TracBrowser for help on using the repository browser.