fixed corner cases
This commit is contained in:
parent
a4f4160969
commit
b47bb61ac6
@ -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<DossierStatusEntity> 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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user