From 17dc6899815fba9e1ad9a63e48e34a1edfca3108 Mon Sep 17 00:00:00 2001 From: dirgantarasiahaan Date: Tue, 6 Jun 2023 17:38:55 +0700 Subject: [PATCH 1/2] enhance status --- .../smartproc/service/rksdaftarisi/PutEditRksIsiService.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/iconplus/smartproc/service/rksdaftarisi/PutEditRksIsiService.java b/src/main/java/com/iconplus/smartproc/service/rksdaftarisi/PutEditRksIsiService.java index 98e4cb6..6608d10 100644 --- a/src/main/java/com/iconplus/smartproc/service/rksdaftarisi/PutEditRksIsiService.java +++ b/src/main/java/com/iconplus/smartproc/service/rksdaftarisi/PutEditRksIsiService.java @@ -6,6 +6,7 @@ import com.iconplus.smartproc.model.request.RksDaftarIsiRequest; import com.iconplus.smartproc.model.response.RksDaftarIsiResponse; import com.iconplus.smartproc.repository.RksDaftarIsiRepository; import com.iconplus.smartproc.util.Constants; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; @Service @@ -29,6 +30,7 @@ public class PutEditRksIsiService implements BaseService Date: Tue, 6 Jun 2023 21:35:03 +0700 Subject: [PATCH 2/2] add template variabel --- .../controller/RksTemplateController.java | 61 ++++++++++++++++++- .../model/entity/RksTemplateVariabel.java | 51 ++++++++++++++++ .../request/RksTemplateVariabelRequest.java | 27 ++++++++ .../ListRksTemplateVariabelResponse.java | 20 ++++++ .../response/RksTemplateVariabelResponse.java | 23 +++++++ .../RksTemplateVariabelRepository.java | 19 ++++++ .../DeleteRksTemplateVariabelService.java | 34 +++++++++++ .../GetListRksTemplateVariabelService.java | 57 +++++++++++++++++ .../GetRksTemplateVariabelService.java | 39 ++++++++++++ .../PostCreateRksTemplateVariabelService.java | 47 ++++++++++++++ .../PutEditRksTemplateVariabelService.java | 39 ++++++++++++ 11 files changed, 415 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/iconplus/smartproc/model/entity/RksTemplateVariabel.java create mode 100644 src/main/java/com/iconplus/smartproc/model/request/RksTemplateVariabelRequest.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/ListRksTemplateVariabelResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/model/response/RksTemplateVariabelResponse.java create mode 100644 src/main/java/com/iconplus/smartproc/repository/RksTemplateVariabelRepository.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rkstemplate/DeleteRksTemplateVariabelService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rkstemplate/GetListRksTemplateVariabelService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rkstemplate/GetRksTemplateVariabelService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rkstemplate/PostCreateRksTemplateVariabelService.java create mode 100644 src/main/java/com/iconplus/smartproc/service/rkstemplate/PutEditRksTemplateVariabelService.java diff --git a/src/main/java/com/iconplus/smartproc/controller/RksTemplateController.java b/src/main/java/com/iconplus/smartproc/controller/RksTemplateController.java index a4b563f..596568e 100644 --- a/src/main/java/com/iconplus/smartproc/controller/RksTemplateController.java +++ b/src/main/java/com/iconplus/smartproc/controller/RksTemplateController.java @@ -3,6 +3,7 @@ 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; @@ -18,17 +19,32 @@ public class RksTemplateController { private final GetListRksTemplateService getListRksTemplateService; private final PutUpdateRksTemplateService putUpdateRksTemplateService; private final DeleteRksTemplateService deleteRksTemplateService; - private GetTemplateListRksDaftarIsiService getTemplateListRksDaftarIsiService; + 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) { + 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() @@ -78,4 +94,45 @@ public class RksTemplateController { 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); + } + } diff --git a/src/main/java/com/iconplus/smartproc/model/entity/RksTemplateVariabel.java b/src/main/java/com/iconplus/smartproc/model/entity/RksTemplateVariabel.java new file mode 100644 index 0000000..6948bec --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/entity/RksTemplateVariabel.java @@ -0,0 +1,51 @@ +package com.iconplus.smartproc.model.entity; + +import com.iconplus.smartproc.helper.base.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.Type; + +import javax.persistence.*; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Entity +@Table(name = "rks_template_variabel") +public class RksTemplateVariabel extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private Long id; + + @Column(name = "rks_template_id") + private Long rksTemplateId; + + @Column(name = "variable_name") + private String variableName; + + @Column(name = "keterangan") + private String keterangan; + + @Column(name = "contoh_isian") + private String contohIsian; + + @Column(name = "digunakan_di") + private String digunakanDi; + + @Column(name = "isian") + private String isian; + + @Column(name = "is_active") + @Type(type = "org.hibernate.type.NumericBooleanType") + private Boolean isActive; + + @Column(name = "is_delete") + @Type(type = "org.hibernate.type.NumericBooleanType") + private Boolean isDelete; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/request/RksTemplateVariabelRequest.java b/src/main/java/com/iconplus/smartproc/model/request/RksTemplateVariabelRequest.java new file mode 100644 index 0000000..34053d9 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/request/RksTemplateVariabelRequest.java @@ -0,0 +1,27 @@ +package com.iconplus.smartproc.model.request; + +import com.iconplus.smartproc.helper.base.BaseRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.domain.Pageable; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class RksTemplateVariabelRequest extends BaseRequest { + + private Long id; + private Long rksTemplateId; + private String variableName; + private String keterangan; + private String contohIsian; + private String isian; + private String digunakanDi; + private Boolean isActive; + + private transient Pageable pageable; + +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/ListRksTemplateVariabelResponse.java b/src/main/java/com/iconplus/smartproc/model/response/ListRksTemplateVariabelResponse.java new file mode 100644 index 0000000..92d29a8 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/ListRksTemplateVariabelResponse.java @@ -0,0 +1,20 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import com.iconplus.smartproc.helper.model.Pagination; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ListRksTemplateVariabelResponse extends BaseResponse { + + private List data; + private Pagination pagination; +} diff --git a/src/main/java/com/iconplus/smartproc/model/response/RksTemplateVariabelResponse.java b/src/main/java/com/iconplus/smartproc/model/response/RksTemplateVariabelResponse.java new file mode 100644 index 0000000..b8de77d --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/model/response/RksTemplateVariabelResponse.java @@ -0,0 +1,23 @@ +package com.iconplus.smartproc.model.response; + +import com.iconplus.smartproc.helper.base.BaseResponse; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class RksTemplateVariabelResponse extends BaseResponse { + + private Long id; + private Long rksTemplateId; + private String variableName; + private String keterangan; + private String contohIsian; + private String digunakanDi; + private String isian; + +} diff --git a/src/main/java/com/iconplus/smartproc/repository/RksTemplateVariabelRepository.java b/src/main/java/com/iconplus/smartproc/repository/RksTemplateVariabelRepository.java new file mode 100644 index 0000000..664c2df --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/repository/RksTemplateVariabelRepository.java @@ -0,0 +1,19 @@ +package com.iconplus.smartproc.repository; + +import com.iconplus.smartproc.model.entity.RksTemplateVariabel; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface RksTemplateVariabelRepository extends JpaRepository { + + Optional findByVariableNameAndIsDeleteFalse(String variabel); + + Optional findByIdAndIsDeleteFalse(Long id); + + Page findByRksTemplateIdAndIsDeleteFalse(Long id, Pageable pageable); +} diff --git a/src/main/java/com/iconplus/smartproc/service/rkstemplate/DeleteRksTemplateVariabelService.java b/src/main/java/com/iconplus/smartproc/service/rkstemplate/DeleteRksTemplateVariabelService.java new file mode 100644 index 0000000..ba5608f --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rkstemplate/DeleteRksTemplateVariabelService.java @@ -0,0 +1,34 @@ +package com.iconplus.smartproc.service.rkstemplate; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.RksTemplateVariabelRequest; +import com.iconplus.smartproc.repository.RksTemplateVariabelRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.stereotype.Service; + +@Service +public class DeleteRksTemplateVariabelService implements BaseService { + + private final RksTemplateVariabelRepository rksTemplateVariabelRepository; + public DeleteRksTemplateVariabelService(RksTemplateVariabelRepository rksTemplateVariabelRepository) { + this.rksTemplateVariabelRepository = rksTemplateVariabelRepository; + } + + @Override + public EmptyResponse execute(RksTemplateVariabelRequest input) { + + var rksTemplateVariabel = rksTemplateVariabelRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException( + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, "RKS Template Variabel", input.getId()) + )); + + rksTemplateVariabel.setIsDelete(true); + rksTemplateVariabelRepository.save(rksTemplateVariabel); + + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/rkstemplate/GetListRksTemplateVariabelService.java b/src/main/java/com/iconplus/smartproc/service/rkstemplate/GetListRksTemplateVariabelService.java new file mode 100644 index 0000000..ea1d9b0 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rkstemplate/GetListRksTemplateVariabelService.java @@ -0,0 +1,57 @@ +package com.iconplus.smartproc.service.rkstemplate; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.model.Pagination; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.RksTemplateVariabel; +import com.iconplus.smartproc.model.request.RksTemplateVariabelRequest; +import com.iconplus.smartproc.model.response.ListRksTemplateVariabelResponse; +import com.iconplus.smartproc.model.response.RksTemplateVariabelResponse; +import com.iconplus.smartproc.repository.RksTemplateVariabelRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class GetListRksTemplateVariabelService implements BaseService { + + private final RksTemplateVariabelRepository rksTemplateVariabelRepository; + public GetListRksTemplateVariabelService(RksTemplateVariabelRepository rksTemplateVariabelRepository) { + this.rksTemplateVariabelRepository = rksTemplateVariabelRepository; + } + + @Override + public ListRksTemplateVariabelResponse execute(RksTemplateVariabelRequest input) { + + List rksTemplateVariabelResponseList = new ArrayList<>(); + var rksTemplateVariabelPage = rksTemplateVariabelRepository.findByRksTemplateIdAndIsDeleteFalse(input.getRksTemplateId(), input.getPageable()); + for (RksTemplateVariabel rksTemplateVariabel : rksTemplateVariabelPage) { + RksTemplateVariabelResponse rksTemplateVariabelResponse = RksTemplateVariabelResponse.builder() + .id(rksTemplateVariabel.getId()) + .rksTemplateId(rksTemplateVariabel.getRksTemplateId()) + .variableName(rksTemplateVariabel.getVariableName()) + .isian(rksTemplateVariabel.getIsian()) + .keterangan(rksTemplateVariabel.getKeterangan()) + .contohIsian(rksTemplateVariabel.getContohIsian()) + .digunakanDi(rksTemplateVariabel.getDigunakanDi()) + .build(); + + rksTemplateVariabelResponseList.add(rksTemplateVariabelResponse); + } + + + return ListRksTemplateVariabelResponse.builder() + .data(rksTemplateVariabelResponseList) + .pagination(Pagination.builder() + .pageSize(input.getPageable().getPageSize()) + .currentPage(input.getPageable().getPageNumber()) + .totalPages(rksTemplateVariabelPage.getTotalPages()) + .totalRecords(rksTemplateVariabelPage.getTotalElements()) + .isFirstPage(rksTemplateVariabelPage.isFirst()) + .isLastPage(rksTemplateVariabelPage.isLast()) + .build()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/rkstemplate/GetRksTemplateVariabelService.java b/src/main/java/com/iconplus/smartproc/service/rkstemplate/GetRksTemplateVariabelService.java new file mode 100644 index 0000000..fc6f04b --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rkstemplate/GetRksTemplateVariabelService.java @@ -0,0 +1,39 @@ +package com.iconplus.smartproc.service.rkstemplate; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.RksTemplateVariabelRequest; +import com.iconplus.smartproc.model.response.RksTemplateVariabelResponse; +import com.iconplus.smartproc.repository.RksTemplateVariabelRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.stereotype.Service; + +@Service +public class GetRksTemplateVariabelService implements BaseService { + + private final RksTemplateVariabelRepository rksTemplateVariabelRepository; + public GetRksTemplateVariabelService(RksTemplateVariabelRepository rksTemplateVariabelRepository) { + this.rksTemplateVariabelRepository = rksTemplateVariabelRepository; + } + + @Override + public RksTemplateVariabelResponse execute(RksTemplateVariabelRequest input) { + + var rksTemplateVariabel = rksTemplateVariabelRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException( + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, "RKS Template Variabel", input.getId()) + )); + + return RksTemplateVariabelResponse.builder() + .id(rksTemplateVariabel.getId()) + .rksTemplateId(rksTemplateVariabel.getRksTemplateId()) + .variableName(rksTemplateVariabel.getVariableName()) + .keterangan(rksTemplateVariabel.getKeterangan()) + .contohIsian(rksTemplateVariabel.getContohIsian()) + .isian(rksTemplateVariabel.getIsian()) + .digunakanDi(rksTemplateVariabel.getDigunakanDi()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/rkstemplate/PostCreateRksTemplateVariabelService.java b/src/main/java/com/iconplus/smartproc/service/rkstemplate/PostCreateRksTemplateVariabelService.java new file mode 100644 index 0000000..3cd25ac --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rkstemplate/PostCreateRksTemplateVariabelService.java @@ -0,0 +1,47 @@ +package com.iconplus.smartproc.service.rkstemplate; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.entity.RksTemplateVariabel; +import com.iconplus.smartproc.model.request.RksTemplateVariabelRequest; +import com.iconplus.smartproc.model.response.RksTemplateVariabelResponse; +import com.iconplus.smartproc.repository.RksTemplateVariabelRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.stereotype.Service; + +@Service +public class PostCreateRksTemplateVariabelService implements BaseService { + + private final RksTemplateVariabelRepository rksTemplateVariabelRepository; + public PostCreateRksTemplateVariabelService(RksTemplateVariabelRepository rksTemplateVariabelRepository) { + this.rksTemplateVariabelRepository = rksTemplateVariabelRepository; + } + + @Override + public RksTemplateVariabelResponse execute(RksTemplateVariabelRequest input) { + + var rksTemplateVariabel= rksTemplateVariabelRepository.findByVariableNameAndIsDeleteFalse(input.getVariableName()); + if (rksTemplateVariabel.isPresent()) { + throw new BusinessException(Constants.ERR_CODE_10002, + Constants.ERR_TTL_10002, + String.format(Constants.ERR_MSG_10002, "RKS Template Variabel", input.getVariableName())); + } + + RksTemplateVariabel rksTemplateVariabelEntity = RksTemplateVariabel.builder() + .rksTemplateId(input.getRksTemplateId()) + .variableName(input.getVariableName()) + .keterangan(input.getKeterangan()) + .contohIsian(input.getContohIsian()) + .digunakanDi(input.getDigunakanDi()) + .isian(input.getIsian()) + .isActive(input.getIsActive()) + .isDelete(false) + .build(); + + var result = rksTemplateVariabelRepository.save(rksTemplateVariabelEntity); + + return RksTemplateVariabelResponse.builder() + .id(result.getId()) + .build(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/rkstemplate/PutEditRksTemplateVariabelService.java b/src/main/java/com/iconplus/smartproc/service/rkstemplate/PutEditRksTemplateVariabelService.java new file mode 100644 index 0000000..b0d56d6 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/rkstemplate/PutEditRksTemplateVariabelService.java @@ -0,0 +1,39 @@ +package com.iconplus.smartproc.service.rkstemplate; + +import com.iconplus.smartproc.exception.BusinessException; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.RksTemplateVariabelRequest; +import com.iconplus.smartproc.model.response.RksTemplateVariabelResponse; +import com.iconplus.smartproc.repository.RksTemplateVariabelRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.stereotype.Service; + +@Service +public class PutEditRksTemplateVariabelService implements BaseService { + + private final RksTemplateVariabelRepository rksTemplateVariabelRepository; + public PutEditRksTemplateVariabelService(RksTemplateVariabelRepository rksTemplateVariabelRepository) { + this.rksTemplateVariabelRepository = rksTemplateVariabelRepository; + } + + @Override + public RksTemplateVariabelResponse execute(RksTemplateVariabelRequest input) { + + var rksTemplateVariabel = rksTemplateVariabelRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException( + Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, "RKS Template Variabel", input.getId()) + )); + + rksTemplateVariabel.setVariableName(input.getVariableName()); + rksTemplateVariabel.setKeterangan(input.getKeterangan()); + rksTemplateVariabel.setContohIsian(input.getContohIsian()); + rksTemplateVariabel.setDigunakanDi(input.getDigunakanDi()); + rksTemplateVariabel.setIsian(input.getIsian()); + rksTemplateVariabelRepository.save(rksTemplateVariabel); + return RksTemplateVariabelResponse.builder() + .id(rksTemplateVariabel.getId()) + .build(); + } +}