Merged in develop (pull request #8)

Develop
This commit is contained in:
Dirgantara 2023-06-06 14:37:18 +00:00
commit 8442713ceb
12 changed files with 417 additions and 2 deletions

View File

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

View File

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

View File

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

View File

@ -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<RksTemplateVariabelResponse> data;
private Pagination pagination;
}

View File

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

View File

@ -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<RksTemplateVariabel, Long> {
Optional<RksTemplateVariabel> findByVariableNameAndIsDeleteFalse(String variabel);
Optional<RksTemplateVariabel> findByIdAndIsDeleteFalse(Long id);
Page<RksTemplateVariabel> findByRksTemplateIdAndIsDeleteFalse(Long id, Pageable pageable);
}

View File

@ -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<RksDaftarIsiRequest, Rk
rksIsi.setTitle(input.getTitle());
rksIsi.setUrutan(input.getUrutan());
rksIsi.setIsKontrak(input.getIsKontrak());
rksIsi.setIsActive(ObjectUtils.isEmpty(input.getIsActive()) ? rksIsi.getIsActive() : input.getIsActive());
rksDaftarIsiRepository.save(rksIsi);
return RksDaftarIsiResponse.builder()

View File

@ -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<RksTemplateVariabelRequest, EmptyResponse> {
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();
}
}

View File

@ -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<RksTemplateVariabelRequest, ListRksTemplateVariabelResponse> {
private final RksTemplateVariabelRepository rksTemplateVariabelRepository;
public GetListRksTemplateVariabelService(RksTemplateVariabelRepository rksTemplateVariabelRepository) {
this.rksTemplateVariabelRepository = rksTemplateVariabelRepository;
}
@Override
public ListRksTemplateVariabelResponse execute(RksTemplateVariabelRequest input) {
List<RksTemplateVariabelResponse> 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();
}
}

View File

@ -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<RksTemplateVariabelRequest, RksTemplateVariabelResponse> {
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();
}
}

View File

@ -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<RksTemplateVariabelRequest, RksTemplateVariabelResponse> {
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();
}
}

View File

@ -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<RksTemplateVariabelRequest, RksTemplateVariabelResponse> {
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();
}
}