smartproc-be/src/main/java/com/iconplus/smartproc/controller/SupplyPositioningMatrixController.java
2023-05-28 22:01:19 +07:00

83 lines
4.7 KiB
Java

package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.SupplyPositioningMatrixRequest;
import com.iconplus.smartproc.model.response.GetListSupplyPositioningMatrixResponse;
import com.iconplus.smartproc.model.response.SupplyPositioningMatrixResponse;
import com.iconplus.smartproc.repository.SupplyPositioningMatrixRepository;
import com.iconplus.smartproc.service.supplypositioningmatrix.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
@RestController
@RequestMapping("/api/supplypositioningmatrix")
public class SupplyPositioningMatrixController {
@Autowired
private SupplyPositioningMatrixRepository supplypositioningmatrixRepository;
private final GetListSupplyPositioningMatrixService getListSupplyPositioningMatrixService;
private final GetSupplyPositioningMatrixByIdService getSupplyPositioningMatrixByIdService;
private final PostCreateSupplyPositioningMatrixService postCreateSupplyPositioningMatrixService;
private final PutUpdateSupplyPositioningMatrixService putUpdateSupplyPositioningMatrixService;
private final DeleteSupplyPositioningMatrixService deleteSupplyPositioningMatrixService;
public SupplyPositioningMatrixController(GetListSupplyPositioningMatrixService getListSupplyPositioningMatrixService,
GetSupplyPositioningMatrixByIdService getSupplyPositioningMatrixByIdService,
PostCreateSupplyPositioningMatrixService postCreateSupplyPositioningMatrixService,
PutUpdateSupplyPositioningMatrixService putUpdateSupplyPositioningMatrixService,
DeleteSupplyPositioningMatrixService deleteSupplyPositioningMatrixService) {
this.getListSupplyPositioningMatrixService = getListSupplyPositioningMatrixService;
this.getSupplyPositioningMatrixByIdService = getSupplyPositioningMatrixByIdService;
this.postCreateSupplyPositioningMatrixService = postCreateSupplyPositioningMatrixService;
this.putUpdateSupplyPositioningMatrixService = putUpdateSupplyPositioningMatrixService;
this.deleteSupplyPositioningMatrixService = deleteSupplyPositioningMatrixService;
}
@GetMapping
public GetListSupplyPositioningMatrixResponse getListSupplyPositioningMatrix(@RequestParam(name = "search", required = false) String search,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
SupplyPositioningMatrixRequest supplyPositioningMatrixRequest = SupplyPositioningMatrixRequest.builder()
.search(search)
.pageable(pageable)
.build();
return getListSupplyPositioningMatrixService.execute(supplyPositioningMatrixRequest);
}
@PostMapping
public SupplyPositioningMatrixResponse createSupplyPositioningMatrix(@RequestBody SupplyPositioningMatrixRequest supplyPositioningMatrixRequest) {
return postCreateSupplyPositioningMatrixService.execute(supplyPositioningMatrixRequest);
}
@GetMapping("/{id}")
public SupplyPositioningMatrixResponse getSupplyPositioningMatrixById(@PathVariable Long id) {
return getSupplyPositioningMatrixByIdService.execute(SupplyPositioningMatrixRequest.builder()
.id(id)
.build());
}
@PutMapping("/{id}")
public SupplyPositioningMatrixResponse updateSupplyPositioningmatrix(@PathVariable Long id,
@RequestBody SupplyPositioningMatrixRequest supplyPositioningMatrixRequest){
supplyPositioningMatrixRequest.setId(id);
return putUpdateSupplyPositioningMatrixService.execute(supplyPositioningMatrixRequest);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteSupplyPositioningMatrix(@PathVariable Long id) {
return deleteSupplyPositioningMatrixService.execute(SupplyPositioningMatrixRequest.builder()
.id(id)
.build());
}
}