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

77 lines
3.4 KiB
Java

package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.UnitInisiatorRequest;
import com.iconplus.smartproc.model.response.GetListUnitInisiatorResponse;
import com.iconplus.smartproc.model.response.UnitInisiatorResponse;
import com.iconplus.smartproc.service.unitinisiator.*;
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/unitinisiator")
public class UnitInisiatorController {
private final GetUnitInisiatorService getUnitInisiatorService;
private final GetListUnitInisiatorService getListUnitInisiatorService;
private final PostCreateUnitInisiatorService postCreateUnitInisiatorService;
private final DeleteUnitInisiatorService deleteUnitInisiatorService;
private final PutUpdateUnitInisiatorService putUpdateUnitInisiatorService;
public UnitInisiatorController(GetUnitInisiatorService getUnitInisiatorService,
GetListUnitInisiatorService getListUnitInisiatorService,
PostCreateUnitInisiatorService postCreateUnitInisiatorService,
DeleteUnitInisiatorService deleteUnitInisiatorService,
PutUpdateUnitInisiatorService putUpdateUnitInisiatorService) {
this.getUnitInisiatorService = getUnitInisiatorService;
this.getListUnitInisiatorService = getListUnitInisiatorService;
this.postCreateUnitInisiatorService = postCreateUnitInisiatorService;
this.deleteUnitInisiatorService = deleteUnitInisiatorService;
this.putUpdateUnitInisiatorService = putUpdateUnitInisiatorService;
}
@GetMapping
public GetListUnitInisiatorResponse getListUnitInisiator(@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);
UnitInisiatorRequest unitInisiatorRequest = UnitInisiatorRequest.builder()
.search(search)
.pageable(pageable)
.build();
return getListUnitInisiatorService.execute(unitInisiatorRequest);
}
@PostMapping
public UnitInisiatorResponse createUnitInisiator(@RequestBody UnitInisiatorRequest request) {
return postCreateUnitInisiatorService.execute(request);
}
@GetMapping("/{id}")
public UnitInisiatorResponse getUnitInisiator(@PathVariable Long id) {
return getUnitInisiatorService.execute(UnitInisiatorRequest.builder()
.id(id)
.build());
}
@PutMapping("/{id}")
public UnitInisiatorResponse updateUnitInisiator(@PathVariable Long id, @RequestBody UnitInisiatorRequest request){
request.setId(id);
return putUpdateUnitInisiatorService.execute(request);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteUnitInisiator(@PathVariable Long id){
return deleteUnitInisiatorService.execute(UnitInisiatorRequest.builder()
.id(id)
.build());
}
}