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); } }