Ignore:
Timestamp:
01/07/23 01:51:16 (18 months ago)
Author:
andrejtodorovski <82031894+andrejtodorovski@…>
Branches:
main
Children:
ed7ef92
Parents:
89865ae
Message:

Final touches

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/autopartz/controller/AdminController.java

    r89865ae r4d67d70  
    11package com.example.autopartz.controller;
    22
    3 import com.example.autopartz.model.Deliveryman;
    4 import com.example.autopartz.model.Role;
    5 import com.example.autopartz.model.User;
    6 import com.example.autopartz.model.Warehouseman;
    7 import com.example.autopartz.repository.DeliverymanRepository;
    8 import com.example.autopartz.repository.WarehousemanRepository;
     3import com.example.autopartz.model.*;
     4import com.example.autopartz.model.manytomany.PartIsAppropriateForCar;
     5import com.example.autopartz.model.manytomany.PartIsFromCategory;
     6import com.example.autopartz.model.manytomany.PartIsInStockInWarehouse;
     7import com.example.autopartz.repository.*;
     8import com.example.autopartz.service.PriceService;
    99import com.example.autopartz.service.UserService;
    1010import org.springframework.stereotype.Controller;
    1111import org.springframework.ui.Model;
    12 import org.springframework.web.bind.annotation.GetMapping;
    13 import org.springframework.web.bind.annotation.PathVariable;
    14 import org.springframework.web.bind.annotation.PostMapping;
    15 import org.springframework.web.bind.annotation.RequestMapping;
     12import org.springframework.web.bind.annotation.*;
    1613
    1714import javax.servlet.http.HttpServletResponse;
    1815import java.io.IOException;
    1916import java.time.LocalDate;
     17import java.time.LocalDateTime;
    2018import java.util.List;
    2119import java.util.Objects;
     
    2523public class AdminController {
    2624    private final UserService userService;
     25    private final PartIsFromCategoryRepository partIsFromCategoryRepository;
     26    private final PartIsAppropriateForCarRepository partIsAppropriateForCarRepository;
    2727    private final WarehousemanRepository warehousemanRepository;
     28    private final PartIsInStockInWarehouseRepository partIsInStockInWarehouseRepository;
    2829    private final DeliverymanRepository deliverymanRepository;
     30    private final CategoryRepository categoryRepository;
     31    private final PartRepository partRepository;
     32    private final WarehouseRepository warehouseRepository;
     33    private final CarRepository carRepository;
     34    private final PartManufacturerRepository partManufacturerRepository;
     35    private final PriceService priceService;
    2936
    30     public AdminController(UserService userService, WarehousemanRepository warehousemanRepository, DeliverymanRepository deliverymanRepository) {
     37    public AdminController(UserService userService, PartIsFromCategoryRepository partIsFromCategoryRepository, PartIsAppropriateForCarRepository partIsAppropriateForCarRepository, WarehousemanRepository warehousemanRepository, PartIsInStockInWarehouseRepository partIsInStockInWarehouseRepository, DeliverymanRepository deliverymanRepository, CategoryRepository categoryRepository, PartRepository partRepository, WarehouseRepository warehouseRepository, CarRepository carRepository, PartManufacturerRepository partManufacturerRepository, PriceService priceService) {
    3138        this.userService = userService;
     39        this.partIsFromCategoryRepository = partIsFromCategoryRepository;
     40        this.partIsAppropriateForCarRepository = partIsAppropriateForCarRepository;
    3241        this.warehousemanRepository = warehousemanRepository;
     42        this.partIsInStockInWarehouseRepository = partIsInStockInWarehouseRepository;
    3343        this.deliverymanRepository = deliverymanRepository;
     44        this.categoryRepository = categoryRepository;
     45        this.partRepository = partRepository;
     46        this.warehouseRepository = warehouseRepository;
     47        this.carRepository = carRepository;
     48        this.partManufacturerRepository = partManufacturerRepository;
     49        this.priceService = priceService;
    3450    }
    3551
     
    6682        }
    6783    }
     84    @GetMapping("/addPart")
     85    public String addPart(Model model){
     86        model.addAttribute("categories",categoryRepository.findAll());
     87        model.addAttribute("warehouses",warehouseRepository.findAll());
     88        model.addAttribute("cars",carRepository.findAll());
     89        model.addAttribute("manufacturers",partManufacturerRepository.findAll());
     90        model.addAttribute("bodyContent","addPart");
     91        return "master-template";
     92    }
     93    @PostMapping("/addPart")
     94    public void addPart(@RequestParam String name, @RequestParam(required = false) String description,
     95                        @RequestParam Integer manufacturer, @RequestParam List<Car> cars,
     96                        @RequestParam List<Category> categories, @RequestParam Integer warehouse,
     97                        @RequestParam Integer quantity, @RequestParam Integer amount, HttpServletResponse response){
     98        // Part(String name, String description, PartManufacturer manufacturer, List<Category> categoryList, List<Warehouse> warehouseList, List<Car> carList) {
     99        Part newPart = new Part(name, description==null ? "" : description, partManufacturerRepository.findById(manufacturer).get(),
     100                categories, List.of(warehouseRepository.findById(warehouse).get()),cars);
     101        partRepository.save(newPart);
     102        priceService.save(new Price(amount, LocalDate.now(),newPart));
     103        partIsInStockInWarehouseRepository.save(new PartIsInStockInWarehouse(newPart.getId(),warehouse,quantity));
     104        for (Category c:categories
     105             ) {
     106            partIsFromCategoryRepository.save(new PartIsFromCategory(newPart.getId(),c.getId()));
     107        }
     108        for (Car car:cars){
     109            partIsAppropriateForCarRepository.save(new PartIsAppropriateForCar(newPart.getId(),car.getId()));
     110        }
     111        try {
     112            response.sendRedirect("/");
     113        } catch (IOException e) {
     114            throw new RuntimeException(e);
     115        }
     116    }
    68117}
Note: See TracChangeset for help on using the changeset viewer.