From b47bb61ac697c0e70cbfadda8cdfe573fa70c309 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Wed, 9 Feb 2022 11:31:36 +0200 Subject: [PATCH] fixed corner cases --- .../DossierStatusPersistenceService.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java index dd0840a15..3a20e42ec 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java @@ -8,6 +8,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -27,6 +28,10 @@ public class DossierStatusPersistenceService { @Transactional public DossierStatusEntity createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest createOrUpdateDossierStatusRequest) { + if (StringUtils.isBlank(createOrUpdateDossierStatusRequest.getName())) { + throw new BadRequestException("Dossier Status Name cannot be empty"); + } + if (createOrUpdateDossierStatusRequest.getDossierStatusId() != null) { //update Optional dossierStatus = dossierStatusRepository.findById(createOrUpdateDossierStatusRequest.getDossierStatusId()); if (dossierStatus.isPresent()) { @@ -38,7 +43,7 @@ public class DossierStatusPersistenceService { throw new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, createOrUpdateDossierStatusRequest.getDossierStatusId())); } } else { - validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(),null); + validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(), null); DossierStatusEntity dossierStatus = new DossierStatusEntity(); dossierStatus.setId(UUID.randomUUID().toString()); BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus); @@ -69,7 +74,7 @@ public class DossierStatusPersistenceService { throw new BadRequestException("Cannot replace with self"); } - dossierStatusRepository.findById(dossierStatusId).ifPresent(toDeleteDossierStatus -> { + dossierStatusRepository.findById(dossierStatusId).ifPresentOrElse(toDeleteDossierStatus -> { DossierStatusEntity replaceDossierStatusEntity = null; if (replaceDossierStatusId != null) { @@ -83,8 +88,12 @@ public class DossierStatusPersistenceService { for (var dossier : toDeleteDossierStatus.getDossiers()) { dossier.setDossierStatus(replaceDossierStatusEntity); } + + dossierStatusRepository.deleteById(dossierStatusId); + }, () -> { + throw new NotFoundException("Dossier Status not found"); }); - dossierStatusRepository.deleteById(dossierStatusId); + } private void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId, String dossierStatusId) {