RED-7232: Error 500 occurs when entering long text in Dossier States - Status Name Field
* validate status name field on dossier status persistence
This commit is contained in:
parent
16d182a513
commit
0aaafa41ea
@ -30,6 +30,8 @@ public class DossierStatusPersistenceService {
|
|||||||
private final DossierStatusRepository dossierStatusRepository;
|
private final DossierStatusRepository dossierStatusRepository;
|
||||||
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
|
|
||||||
|
private final static int MAX_STATUS_NAME_LENGTH = 255;
|
||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public DossierStatusEntity createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest createOrUpdateDossierStatusRequest) {
|
public DossierStatusEntity createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest createOrUpdateDossierStatusRequest) {
|
||||||
@ -41,7 +43,7 @@ public class DossierStatusPersistenceService {
|
|||||||
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()) {
|
||||||
validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(),
|
validateDossierStatusForTemplate(createOrUpdateDossierStatusRequest.getName(),
|
||||||
createOrUpdateDossierStatusRequest.getDossierTemplateId(),
|
createOrUpdateDossierStatusRequest.getDossierTemplateId(),
|
||||||
createOrUpdateDossierStatusRequest.getDossierStatusId());
|
createOrUpdateDossierStatusRequest.getDossierStatusId());
|
||||||
if (createOrUpdateDossierStatusRequest.getRank() != dossierStatus.get().getRank() && dossierStatusRepository.getDuplicateRanks(dossierStatus.get()
|
if (createOrUpdateDossierStatusRequest.getRank() != dossierStatus.get().getRank() && dossierStatusRepository.getDuplicateRanks(dossierStatus.get()
|
||||||
@ -55,7 +57,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);
|
validateDossierStatusForTemplate(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);
|
||||||
@ -72,7 +74,11 @@ public class DossierStatusPersistenceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId, String dossierStatusId) {
|
private void validateDossierStatusForTemplate(String dossierStatusName, String dossierTemplateId, String dossierStatusId) {
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(dossierStatusName) && dossierStatusName.length() > MAX_STATUS_NAME_LENGTH) {
|
||||||
|
throw new BadRequestException(String.format("The name is too long (%s), max length %s", dossierStatusName.length(), MAX_STATUS_NAME_LENGTH));
|
||||||
|
}
|
||||||
|
|
||||||
getAllDossierStatusForTemplate(dossierTemplateId).forEach(existing -> {
|
getAllDossierStatusForTemplate(dossierTemplateId).forEach(existing -> {
|
||||||
if (existing.getName().equals(dossierStatusName) && !existing.getId().equals(dossierStatusId)) {
|
if (existing.getName().equals(dossierStatusName) && !existing.getId().equals(dossierStatusId)) {
|
||||||
|
|||||||
@ -40,8 +40,8 @@ public class DossierTemplatePersistenceService {
|
|||||||
|
|
||||||
private final TypeRepository typeRepository;
|
private final TypeRepository typeRepository;
|
||||||
|
|
||||||
private final int MAX_NAME_LENGTH = 255;
|
private final static int MAX_NAME_LENGTH = 255;
|
||||||
private final int MAX_DESCRIPTION_LENGTH = 4000;
|
private final static int MAX_DESCRIPTION_LENGTH = 4000;
|
||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user