added code to prevent status association with wrong template
This commit is contained in:
parent
db4a31180a
commit
4162efe290
@ -46,13 +46,10 @@ public class DossierPersistenceService {
|
||||
dossier.setDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
dossier.setLastUpdated(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
dossier.setDossierTemplate(dossierTemplateRepository.getOne(createOrUpdateDossierRequest.getDossierTemplateId()));
|
||||
if(createOrUpdateDossierRequest.getDossierStatusId() != null) {
|
||||
//TODO: make other verifications that the dossierStatus matches the dossierTemplateId?
|
||||
dossier.setDossierStatus(dossierStatusPersistenceService.getDossierStatus(createOrUpdateDossierRequest.getDossierStatusId()));
|
||||
}
|
||||
var reportTemplates = reportTemplateRepository.findAllById(createOrUpdateDossierRequest.getReportTemplateIds());
|
||||
reportTemplates.forEach(r -> r.getDossiers().add(dossier));
|
||||
dossier.setReportTemplates(reportTemplates);
|
||||
this.handleDossierStatus(createOrUpdateDossierRequest, dossier);
|
||||
|
||||
return dossierRepository.save(dossier);
|
||||
|
||||
@ -76,13 +73,24 @@ public class DossierPersistenceService {
|
||||
}
|
||||
});
|
||||
dossier.setReportTemplates(reportTemplates);
|
||||
if (createOrUpdateDossierRequest.getDossierStatusId() != null) {
|
||||
dossier.setDossierStatus(dossierStatusPersistenceService.getDossierStatus(createOrUpdateDossierRequest.getDossierStatusId()));
|
||||
}
|
||||
this.handleDossierStatus(createOrUpdateDossierRequest, dossier);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void handleDossierStatus(CreateOrUpdateDossierRequest createOrUpdateDossierRequest, DossierEntity dossier) {
|
||||
if (createOrUpdateDossierRequest.getDossierStatusId() != null) {
|
||||
var dossierStatus = dossierStatusPersistenceService.getDossierStatus(createOrUpdateDossierRequest.getDossierStatusId());
|
||||
if (dossierStatus.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
|
||||
dossier.setDossierStatus(dossierStatus);
|
||||
} else {
|
||||
throw new BadRequestException("Invalid Dossier Status");
|
||||
}
|
||||
} else {
|
||||
dossier.setDossierStatus(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public DossierEntity getAndValidateDossier(String dossierId) {
|
||||
// check whether the dossierId exists and is not deleted
|
||||
|
||||
@ -19,6 +19,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.utils.Ma
|
||||
public class DossierStatusController implements DossierStatusResource {
|
||||
|
||||
private final DossierStatusPersistenceService dossierStatusPersistenceService;
|
||||
|
||||
@Override
|
||||
public DossierStatusInfo createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest dossierStatusRequest) {
|
||||
return convert(dossierStatusPersistenceService.createOrUpdateDossierStatus(dossierStatusRequest), DossierStatusInfo.class);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user