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

78 lines
3.7 KiB
Java

package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.JenisKontrakRequest;
import com.iconplus.smartproc.model.response.GetListJenisKontrakResponse;
import com.iconplus.smartproc.model.response.JenisKontrakResponse;
import com.iconplus.smartproc.service.jeniskontrak.*;
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/jeniskontrak")
public class JenisKontrakController {
private final GetListJenisKontrakService getListJenisKontrakService;
private final GetJenisKontrakByIdService getJenisKontrakByIdService;
private final PostCreateJenisKontrakService postCreateJenisKontrakService;
private final PutUpdateJenisKontrakService putUpdateJenisKontrakService;
private final DeleteJenisKontrakService deleteJenisKontrakService;
public JenisKontrakController(GetListJenisKontrakService getListJenisKontrakService,
GetJenisKontrakByIdService getJenisKontrakByIdService,
PostCreateJenisKontrakService postCreateJenisKontrakService,
PutUpdateJenisKontrakService putUpdateJenisKontrakService,
DeleteJenisKontrakService deleteJenisKontrakService) {
this.getListJenisKontrakService = getListJenisKontrakService;
this.getJenisKontrakByIdService = getJenisKontrakByIdService;
this.postCreateJenisKontrakService = postCreateJenisKontrakService;
this.putUpdateJenisKontrakService = putUpdateJenisKontrakService;
this.deleteJenisKontrakService = deleteJenisKontrakService;
}
@GetMapping
public GetListJenisKontrakResponse getListJenisKontrak(@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);
JenisKontrakRequest jenisKontrakRequest = JenisKontrakRequest.builder()
.search(search)
.pageable(pageable)
.build();
return getListJenisKontrakService.execute(jenisKontrakRequest);
}
@PostMapping
public JenisKontrakResponse createJenisKontrak(@RequestBody JenisKontrakRequest jenisKontrakRequest) {
return postCreateJenisKontrakService.execute(jenisKontrakRequest);
}
@GetMapping("/{id}")
public JenisKontrakResponse getJenisKontrakById(@PathVariable Long id) {
return getJenisKontrakByIdService.execute(JenisKontrakRequest.builder()
.id(id)
.build());
}
@PutMapping("/{id}")
public JenisKontrakResponse updateJeniskontrak(@PathVariable Long id,
@RequestBody JenisKontrakRequest jenisKontrakRequest){
jenisKontrakRequest.setId(id);
return putUpdateJenisKontrakService.execute(jenisKontrakRequest);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteJenisKontrak(@PathVariable Long id) {
return deleteJenisKontrakService.execute(JenisKontrakRequest.builder()
.id(id)
.build());
}
}