RED-3240 - Dossier Status
- update the endpoint to get the dossier status list for templated id - add validation of unique name within the same dossier template id
This commit is contained in:
parent
f1181177d4
commit
fd4129e550
@ -12,6 +12,7 @@ public interface DossierStatusResource {
|
||||
|
||||
String DOSSIER_STATUS_PATH = "/dossier-status";
|
||||
|
||||
String DOSSIER_TEMPLATE_PATH = "/dossier-template";
|
||||
String DOSSIER_TEMPLATE_ID = "dossierTemplateId";
|
||||
String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}";
|
||||
|
||||
@ -32,7 +33,7 @@ public interface DossierStatusResource {
|
||||
|
||||
@ResponseBody
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
@GetMapping(value = DOSSIER_STATUS_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@GetMapping(value = DOSSIER_STATUS_PATH + DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
List<DossierStatusInfo> getAllDossierStatusForTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId);
|
||||
|
||||
@ResponseBody
|
||||
|
||||
@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierStatusEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||
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.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest;
|
||||
@ -28,13 +29,14 @@ public class DossierStatusPersistenceService {
|
||||
if (createOrUpdateDossierStatusRequest.getDossierStatusId() != null) { //update
|
||||
Optional<DossierStatusEntity> dossierStatus = dossierStatusRepository.findById(createOrUpdateDossierStatusRequest.getDossierStatusId());
|
||||
if (dossierStatus.isPresent()) {
|
||||
|
||||
validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId());
|
||||
BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus.get());
|
||||
return dossierStatus.get();
|
||||
} else {
|
||||
throw new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, createOrUpdateDossierStatusRequest.getDossierStatusId()));
|
||||
}
|
||||
} else {
|
||||
validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId());
|
||||
DossierStatusEntity dossierStatus = new DossierStatusEntity();
|
||||
dossierStatus.setId(UUID.randomUUID().toString());
|
||||
BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus);
|
||||
@ -79,4 +81,12 @@ public class DossierStatusPersistenceService {
|
||||
});
|
||||
dossierStatusRepository.deleteById(dossierStatusId);
|
||||
}
|
||||
|
||||
public void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId) {
|
||||
getAllDossierStatusForTemplate(dossierTemplateId).forEach(existing -> {
|
||||
if (existing.getName().equals(dossierStatusName)) {
|
||||
throw new ConflictException("DossierStatus name must be unique within the same dossier template");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ public class DossierStatusController implements DossierStatusResource {
|
||||
|
||||
@Override
|
||||
public List<DossierStatusInfo> getAllDossierStatusForTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
|
||||
return convert(dossierStatusPersistenceService.getAllDossierStatus(), DossierStatusInfo.class);
|
||||
return convert(dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId), DossierStatusInfo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -46,6 +46,6 @@ public class DossierStatusController implements DossierStatusResource {
|
||||
|
||||
@Override
|
||||
public void deleteDossierStatus(String dossierStatusId, @RequestParam(value = DOSSIER_STATUS_REPLACE_ID, required = false) String replaceDossierStatusId) {
|
||||
dossierStatusPersistenceService.deleteDossierStatus(dossierStatusId,replaceDossierStatusId);
|
||||
dossierStatusPersistenceService.deleteDossierStatus(dossierStatusId, replaceDossierStatusId);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user