package com.iconplus.smartproc.service.bidang; import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.Bidang; import com.iconplus.smartproc.model.request.BidangRequest; import com.iconplus.smartproc.model.response.BidangResponse; import com.iconplus.smartproc.repository.BidangRepository; import com.iconplus.smartproc.util.Constants; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @Service public class PostCreateBidangService implements BaseService { private BidangRepository bidangRepository; public PostCreateBidangService(BidangRepository bidangRepository) { this.bidangRepository = bidangRepository; } @Override public BidangResponse execute(BidangRequest input) { var bidang = bidangRepository.findByBidangAndIsDeleteFalse(input.getBidang()); if (bidang.isPresent()) { throw new BusinessException(HttpStatus.CONFLICT, Constants.ERR_CODE_10002, Constants.ERR_TTL_10002, String.format(Constants.ERR_MSG_10002, "Bidang", input.getBidang())); } Bidang bidangEntity = Bidang.builder() .id(input.getId()) .instansiId(input.getInstansiId()) .bidang(input.getBidang()) .keterangan(input.getKeterangan()) .isActive(input.getIsActive()) .isDelete(false) .build(); var result = bidangRepository.save(bidangEntity); return BidangResponse.builder() .id(result.getId()) .build(); } }