source: src/main/java/com/example/autopartz/controller/PartController.java@ 7d43957

main
Last change on this file since 7d43957 was 7d43957, checked in by andrejtodorovski <82031894+andrejtodorovski@…>, 18 months ago

Added functionalities

  • Property mode set to 100644
File size: 3.7 KB
Line 
1package com.example.autopartz.controller;
2
3import com.example.autopartz.model.Client;
4import com.example.autopartz.model.Order;
5import com.example.autopartz.model.Part;
6import com.example.autopartz.model.User;
7import com.example.autopartz.model.manytomany.OrderContainsPart;
8import com.example.autopartz.repository.OrderContainsPartRepository;
9import com.example.autopartz.service.*;
10import org.springframework.stereotype.Controller;
11import org.springframework.ui.Model;
12import org.springframework.web.bind.annotation.*;
13
14import javax.servlet.http.HttpServletRequest;
15import javax.servlet.http.HttpServletResponse;
16import javax.servlet.http.HttpSession;
17import java.io.IOException;
18
19@Controller
20@RequestMapping("/part")
21public class PartController {
22 private final PartService partService;
23 private final RepairShopService repairShopService;
24 private final PriceService priceService;
25 private final OrderService orderService;
26 private final UserService userService;
27 private final OrderContainsPartRepository orderContainsPartRepository;
28 public PartController(PartService partService, RepairShopService repairShopService, PriceService priceService, OrderService orderService, UserService userService, OrderContainsPartRepository orderContainsPartRepository) {
29 this.partService = partService;
30 this.repairShopService = repairShopService;
31 this.priceService = priceService;
32 this.orderService = orderService;
33 this.userService = userService;
34 this.orderContainsPartRepository = orderContainsPartRepository;
35 }
36 @GetMapping("/{id}")
37 public String getPartPage(@PathVariable Integer id, Model model){
38 Part temp = partService.findById(id);
39 Integer amount = priceService.findPriceForPart(temp).stream().findFirst().orElseThrow(RuntimeException::new).getAmount();
40 model.addAttribute("part",temp);
41 model.addAttribute("amount",amount);
42 model.addAttribute("bodyContent","partinfo");
43 return "master-template";
44 }
45 @GetMapping("/delivery")
46 public String getDeliveryPage(Model model){
47 model.addAttribute("repairShops",repairShopService.findAll());
48 model.addAttribute("bodyContent","deliveryForPart");
49 return "master-template";
50 }
51 @PostMapping("/repairshopdelivery")
52 public void setRepairShopDelivery(@RequestParam String name, HttpServletResponse response){
53 // insert into project.repair (vin, id_repair_shop, id_service_book) values (1111,3,1)
54 try {
55 response.sendRedirect("/");
56 } catch (IOException e) {
57 throw new RuntimeException(e);
58 }
59 }
60 @PostMapping("/homedelivery")
61 public void setHomeDelivery(@RequestParam String address, HttpServletResponse response){
62 // insert into delivery (delivery_status, delivery_address,id_user,id_order) values ('in progress','Aerodrom',4,1)
63 try {
64 response.sendRedirect("/");
65 } catch (IOException e) {
66 throw new RuntimeException(e);
67 }
68 }
69 @PostMapping("/addToOrder/{id}")
70 public void addToOrder(@PathVariable Integer id,@RequestParam Integer quantity, HttpSession session, HttpServletResponse response, HttpServletRequest request){
71 if(session.getAttribute("order")==null){
72 User u = userService.findByUsername(request.getRemoteUser());
73 Order newOrder = orderService.create((Client) u);
74 session.setAttribute("order",newOrder);
75 }
76 Order order = (Order) session.getAttribute("order");
77 orderContainsPartRepository.save(new OrderContainsPart(id,order.getID_order(),quantity));
78 try {
79 response.sendRedirect("/products");
80 } catch (IOException e) {
81 throw new RuntimeException(e);
82 }
83 }
84}
Note: See TracBrowser for help on using the repository browser.