package com.iconplus.smartproc.service.drp; import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.DrpDokumen; import com.iconplus.smartproc.model.request.DrpDokumenRequest; import com.iconplus.smartproc.model.request.DrpRequest; import com.iconplus.smartproc.model.response.DrpResponse; import com.iconplus.smartproc.repository.DrpDokumenRepository; import com.iconplus.smartproc.repository.DrpRepository; import com.iconplus.smartproc.util.Constants; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service public class PostCreateDrpService implements BaseService { private final DrpRepository drpRepository; private final DrpDokumenRepository drpDokumenRepository; public PostCreateDrpService (DrpRepository drpRepository, DrpDokumenRepository drpDokumenRepository) { this.drpRepository = drpRepository; this.drpDokumenRepository = drpDokumenRepository; } @Override public DrpResponse execute(DrpRequest input) { var drp = drpRepository.findByIdAndIsDeleteFalse(input.getId()) .orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001, Constants.ERR_TTL_10001, String.format(Constants.ERR_MSG_10001, "DRP", input.getId()))); List drpDokumenList = new ArrayList<>(); if (ObjectUtils.isNotEmpty(input.getDataDrpDokumen())) { for (DrpDokumenRequest drpDokumenRequest : input.getDataDrpDokumen()) { DrpDokumen drpDokumen = DrpDokumen.builder() .drpId(drp.getId()) .jenisDokumenId(drpDokumenRequest.getJenisDokumenId()) .filename(drpDokumenRequest.getFilename()) .keterangan(drpDokumenRequest.getKeterangan()) .isDelete(false) .build(); drpDokumenList.add(drpDokumen); } } drpDokumenRepository.saveAll(drpDokumenList); return DrpResponse.builder() .id(drp.getId()) .build(); } }