smartproc-be/src/main/java/com/iconplus/smartproc/controller/RksTemplateController.java
2023-06-06 21:35:03 +07:00

139 lines
7.1 KiB
Java

package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.RksDaftarIsiRequest;
import com.iconplus.smartproc.model.request.RksTemplateRequest;
import com.iconplus.smartproc.model.request.RksTemplateVariabelRequest;
import com.iconplus.smartproc.model.response.*;
import com.iconplus.smartproc.service.rkstemplate.*;
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/rks/template")
public class RksTemplateController {
private final PostCreateRksTemplateService postCreateRksTemplateService;
private final GetListRksTemplateService getListRksTemplateService;
private final PutUpdateRksTemplateService putUpdateRksTemplateService;
private final DeleteRksTemplateService deleteRksTemplateService;
private final GetTemplateListRksDaftarIsiService getTemplateListRksDaftarIsiService;
private final PostCreateRksTemplateVariabelService postCreateRksTemplateVariabelService;
private final PutEditRksTemplateVariabelService putEditRksTemplateVariabelService;
private final DeleteRksTemplateVariabelService deleteRksTemplateVariabelService;
private final GetRksTemplateVariabelService getRksTemplateVariabelService;
private final GetListRksTemplateVariabelService getListRksTemplateVariabelService;
public RksTemplateController(PostCreateRksTemplateService postCreateRksTemplateService,
GetListRksTemplateService getListRksTemplateService,
PutUpdateRksTemplateService putUpdateRksTemplateService,
DeleteRksTemplateService deleteRksTemplateService,
GetTemplateListRksDaftarIsiService getTemplateListRksDaftarIsiService,
PostCreateRksTemplateVariabelService postCreateRksTemplateVariabelService,
PutEditRksTemplateVariabelService putEditRksTemplateVariabelService,
DeleteRksTemplateVariabelService deleteRksTemplateVariabelService,
GetRksTemplateVariabelService getRksTemplateVariabelService,
GetListRksTemplateVariabelService getListRksTemplateVariabelService) {
this.postCreateRksTemplateService = postCreateRksTemplateService;
this.getListRksTemplateService = getListRksTemplateService;
this.putUpdateRksTemplateService = putUpdateRksTemplateService;
this.deleteRksTemplateService = deleteRksTemplateService;
this.getTemplateListRksDaftarIsiService = getTemplateListRksDaftarIsiService;
this.postCreateRksTemplateVariabelService = postCreateRksTemplateVariabelService;
this.putEditRksTemplateVariabelService = putEditRksTemplateVariabelService;
this.deleteRksTemplateVariabelService = deleteRksTemplateVariabelService;
this.getRksTemplateVariabelService = getRksTemplateVariabelService;
this.getListRksTemplateVariabelService = getListRksTemplateVariabelService;
}
@PostMapping()
public RksTemplateResponse createRksTemplate(@RequestBody RksTemplateRequest rksTemplateRequest) {
return postCreateRksTemplateService.execute(rksTemplateRequest);
}
@GetMapping()
public ListRksTemplateResponse getListRksTemplate(@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size) {
Pageable pageable = PageRequest.of((page - 1), size);
RksTemplateRequest rksTemplateRequest = RksTemplateRequest.builder()
.pageable(pageable)
.build();
return getListRksTemplateService.execute(rksTemplateRequest);
}
@PutMapping("/{id}")
public RksTemplateResponse editRksTemplate(@PathVariable(name = "id") Long id,
@RequestBody RksTemplateRequest rksTemplateRequest) {
rksTemplateRequest.setId(id);
return putUpdateRksTemplateService.execute(rksTemplateRequest);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteRksTemplate(@PathVariable(name = "id") Long id) {
return deleteRksTemplateService.execute(RksTemplateRequest.builder()
.id(id)
.build());
}
@GetMapping("/{id}")
public ListRksDaftarIsiResponse getRksDaftarIsiResponse(@PathVariable(name = "id") Long id,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size) {
Pageable pageable = PageRequest.of((page - 1), size);
RksTemplateRequest rksTemplateRequest = RksTemplateRequest.builder()
.id(id)
.pageable(pageable)
.build();
return getTemplateListRksDaftarIsiService.execute(rksTemplateRequest);
}
@PostMapping("/{id}/variabel")
public RksTemplateVariabelResponse createRksTemplateVariabel(@RequestBody RksTemplateVariabelRequest rksTemplateVariabelRequest) {
return postCreateRksTemplateVariabelService.execute(rksTemplateVariabelRequest);
}
@PutMapping("/variabel/{id}")
public RksTemplateVariabelResponse editRksTemplateVariabel(@PathVariable(name = "id") Long id,
@RequestBody RksTemplateVariabelRequest rksTemplateVariabelRequest) {
rksTemplateVariabelRequest.setId(id);
return putEditRksTemplateVariabelService.execute(rksTemplateVariabelRequest);
}
@DeleteMapping("/variabel/{id}")
public EmptyResponse deleteTemplateVariabel(@PathVariable(name = "id") Long id) {
return deleteRksTemplateVariabelService.execute(RksTemplateVariabelRequest.builder()
.id(id)
.build());
}
@GetMapping("/variabel/{id}")
public RksTemplateVariabelResponse getRksTemplateVariabel(@PathVariable(name = "id") Long id) {
return getRksTemplateVariabelService.execute(RksTemplateVariabelRequest.builder()
.id(id)
.build());
}
@GetMapping("/{id}/variabel")
public ListRksTemplateVariabelResponse getListRksTemplateVariabel(@PathVariable(name = "id") Long id,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size) {
Pageable pageable = PageRequest.of((page - 1), size);
RksTemplateVariabelRequest rksTemplateVariabelRequest = RksTemplateVariabelRequest.builder()
.id(id)
.pageable(pageable)
.build();
return getListRksTemplateVariabelService.execute(rksTemplateVariabelRequest);
}
}