Pull request #221: fixed corner cases
Merge in RED/persistence-service from RED-3240-2 to master * commit 'b47bb61ac697c0e70cbfadda8cdfe573fa70c309': fixed corner cases
This commit is contained in:
commit
552d2a78f7
@ -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.CreateOrUpdateDossierStatusRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -27,6 +28,10 @@ public class DossierStatusPersistenceService {
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public DossierStatusEntity createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest createOrUpdateDossierStatusRequest) {
|
public DossierStatusEntity createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest createOrUpdateDossierStatusRequest) {
|
||||||
|
if (StringUtils.isBlank(createOrUpdateDossierStatusRequest.getName())) {
|
||||||
|
throw new BadRequestException("Dossier Status Name cannot be empty");
|
||||||
|
}
|
||||||
|
|
||||||
if (createOrUpdateDossierStatusRequest.getDossierStatusId() != null) { //update
|
if (createOrUpdateDossierStatusRequest.getDossierStatusId() != null) { //update
|
||||||
Optional<DossierStatusEntity> dossierStatus = dossierStatusRepository.findById(createOrUpdateDossierStatusRequest.getDossierStatusId());
|
Optional<DossierStatusEntity> dossierStatus = dossierStatusRepository.findById(createOrUpdateDossierStatusRequest.getDossierStatusId());
|
||||||
if (dossierStatus.isPresent()) {
|
if (dossierStatus.isPresent()) {
|
||||||
@ -38,7 +43,7 @@ public class DossierStatusPersistenceService {
|
|||||||
throw new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, createOrUpdateDossierStatusRequest.getDossierStatusId()));
|
throw new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, createOrUpdateDossierStatusRequest.getDossierStatusId()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(),null);
|
validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(), null);
|
||||||
DossierStatusEntity dossierStatus = new DossierStatusEntity();
|
DossierStatusEntity dossierStatus = new DossierStatusEntity();
|
||||||
dossierStatus.setId(UUID.randomUUID().toString());
|
dossierStatus.setId(UUID.randomUUID().toString());
|
||||||
BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus);
|
BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus);
|
||||||
@ -69,7 +74,7 @@ public class DossierStatusPersistenceService {
|
|||||||
throw new BadRequestException("Cannot replace with self");
|
throw new BadRequestException("Cannot replace with self");
|
||||||
}
|
}
|
||||||
|
|
||||||
dossierStatusRepository.findById(dossierStatusId).ifPresent(toDeleteDossierStatus -> {
|
dossierStatusRepository.findById(dossierStatusId).ifPresentOrElse(toDeleteDossierStatus -> {
|
||||||
|
|
||||||
DossierStatusEntity replaceDossierStatusEntity = null;
|
DossierStatusEntity replaceDossierStatusEntity = null;
|
||||||
if (replaceDossierStatusId != null) {
|
if (replaceDossierStatusId != null) {
|
||||||
@ -83,8 +88,12 @@ public class DossierStatusPersistenceService {
|
|||||||
for (var dossier : toDeleteDossierStatus.getDossiers()) {
|
for (var dossier : toDeleteDossierStatus.getDossiers()) {
|
||||||
dossier.setDossierStatus(replaceDossierStatusEntity);
|
dossier.setDossierStatus(replaceDossierStatusEntity);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
dossierStatusRepository.deleteById(dossierStatusId);
|
dossierStatusRepository.deleteById(dossierStatusId);
|
||||||
|
}, () -> {
|
||||||
|
throw new NotFoundException("Dossier Status not found");
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId, String dossierStatusId) {
|
private void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId, String dossierStatusId) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user