package com.iconplus.smartproc.service.jabatan; import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.Jabatan; import com.iconplus.smartproc.model.request.JabatanRequest; import com.iconplus.smartproc.model.response.JabatanResponse; import com.iconplus.smartproc.repository.JabatanRepository; import com.iconplus.smartproc.util.Constants; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; @Service public class PostCreateJabatanService implements BaseService { private JabatanRepository jabatanRepository; public PostCreateJabatanService(JabatanRepository jabatanRepository) { this.jabatanRepository = jabatanRepository; } @Override public JabatanResponse execute(JabatanRequest input) { var jabatan = jabatanRepository.findByJabatanAndIsDeleteFalse(input.getJabatan()); if (jabatan.isPresent()) { throw new BusinessException(HttpStatus.CONFLICT, Constants.ERR_CODE_10002, Constants.ERR_TTL_10002, String.format(Constants.ERR_MSG_10002, "Jabatan", input.getJabatan())); } Jabatan jabatanEntity = Jabatan.builder() .jabatan(input.getJabatan()) .keterangan(input.getKeterangan()) .instansiId(input.getInstansiId()) .bidangId(input.getBidangId()) .isActive(input.getIsActive()) .isDelete(false) .build(); var result = jabatanRepository.save(jabatanEntity); return JabatanResponse.builder() .id(result.getId()) .build(); } }