break cyclic service injection

This commit is contained in:
Kilian Schuettler 2024-07-26 14:18:39 +02:00
parent 354958103e
commit a01030ad91
2 changed files with 11 additions and 7 deletions

View File

@ -65,7 +65,7 @@ public class DossierPersistenceService {
if (createOrUpdateDossierRequest.getDossierStatusId() != null) {
var dossierStatus = dossierStatusPersistenceService.getDossierStatus(createOrUpdateDossierRequest.getDossierStatusId());
if (dossierStatus.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
if (dossierStatus.getDossierTemplate().getId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
dossier.setDossierStatus(dossierStatus);
} else {
throw new BadRequestException("Invalid Dossier Status");

View File

@ -17,6 +17,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierStatusRepository;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
import com.iqser.red.service.persistence.management.v1.processor.utils.DossierStatusFilteringMapper;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierStatusInfo;
@ -31,7 +32,7 @@ public class DossierStatusPersistenceService {
public static final String DOSSIER_STATUS_NOT_FOUND_MESSAGE = "Dossier Status with Id %s not found.";
private final DossierStatusRepository dossierStatusRepository;
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
private final DossierTemplateRepository dossierTemplateRepository;
private final DossierStatusFilteringMapper dossierStatusFilteringMapper;
private final static int MAX_STATUS_NAME_LENGTH = 255;
@ -64,16 +65,19 @@ public class DossierStatusPersistenceService {
validateDossierStatusForTemplate(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(), null);
DossierStatusEntity dossierStatus = new DossierStatusEntity();
dossierStatus.setId(UUID.randomUUID().toString());
BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus);
var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(createOrUpdateDossierStatusRequest.getDossierTemplateId());
// in case of duplicate ranks, increase the ranks
if (dossierStatusRepository.getDuplicateRanks(createOrUpdateDossierStatusRequest.getDossierTemplateId(), createOrUpdateDossierStatusRequest.getRank()) > 0) {
dossierStatusRepository.adjustRanksForDossierTemplate(createOrUpdateDossierStatusRequest.getDossierTemplateId(), createOrUpdateDossierStatusRequest.getRank());
}
var loadedDossierStatus = dossierStatusRepository.save(dossierStatus);
loadedDossierStatus.setDossierTemplate(dossierTemplate);
BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus);
if (createOrUpdateDossierStatusRequest.getDossierTemplateId() != null) {
var dossierTemplate = dossierTemplateRepository.findById(createOrUpdateDossierStatusRequest.getDossierTemplateId())
.orElseThrow(() -> new NotFoundException("DossierTemplate with id" + createOrUpdateDossierStatusRequest.getDossierTemplateId()));
return loadedDossierStatus;
dossierStatus.setDossierTemplate(dossierTemplate);
}
return dossierStatusRepository.save(dossierStatus);
}
}