package com.iconplus.smartproc.service.metodepengadaan; import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.MetodePengadaan; import com.iconplus.smartproc.model.request.MetodePengadaanRequest; import com.iconplus.smartproc.model.response.MetodePengadaanResponse; import com.iconplus.smartproc.repository.MetodePengadaanRepository; import com.iconplus.smartproc.util.Constants; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @Service @Slf4j public class PostCreateMetodePengadaanService implements BaseService { private final MetodePengadaanRepository metodePengadaanRepository; public PostCreateMetodePengadaanService(MetodePengadaanRepository metodePengadaanRepository) { this.metodePengadaanRepository = metodePengadaanRepository; } @Override public MetodePengadaanResponse execute(MetodePengadaanRequest input) { var existMetodePengadaan = metodePengadaanRepository.findByMetodePengadaanAndIsDeleteFalse(input.getMetodePengadaan()); if (existMetodePengadaan.isPresent()) { throw new BusinessException(HttpStatus.CONFLICT, Constants.ERR_CODE_10002, Constants.ERR_TTL_10002, String.format(Constants.ERR_MSG_10002, "Metode Pengadaan", input.getMetodePengadaan())); } MetodePengadaan metodePengadaan = MetodePengadaan.builder() .metodePengadaan(input.getMetodePengadaan()) .keterangan(input.getKeterangan()) .isActive(input.getIsActive()) .isDelete(false) .build(); var result = metodePengadaanRepository.save(metodePengadaan); log.info("success insert metode pengadaan id : {}", result.getId()); return MetodePengadaanResponse.builder() .id(result.getId()) .build(); } }