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 DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||
|
||||
private final static int MAX_STATUS_NAME_LENGTH = 255;
|
||||
|
||||
|
||||
@Transactional
|
||||
public DossierStatusEntity createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest createOrUpdateDossierStatusRequest) {
|
||||
@ -41,7 +43,7 @@ public class DossierStatusPersistenceService {
|
||||
if (createOrUpdateDossierStatusRequest.getDossierStatusId() != null) { //update
|
||||
Optional<DossierStatusEntity> dossierStatus = dossierStatusRepository.findById(createOrUpdateDossierStatusRequest.getDossierStatusId());
|
||||
if (dossierStatus.isPresent()) {
|
||||
validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(),
|
||||
validateDossierStatusForTemplate(createOrUpdateDossierStatusRequest.getName(),
|
||||
createOrUpdateDossierStatusRequest.getDossierTemplateId(),
|
||||
createOrUpdateDossierStatusRequest.getDossierStatusId());
|
||||
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()));
|
||||
}
|
||||
} else {
|
||||
validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(), null);
|
||||
validateDossierStatusForTemplate(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(), null);
|
||||
DossierStatusEntity dossierStatus = new DossierStatusEntity();
|
||||
dossierStatus.setId(UUID.randomUUID().toString());
|
||||
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 -> {
|
||||
if (existing.getName().equals(dossierStatusName) && !existing.getId().equals(dossierStatusId)) {
|
||||
|
||||
@ -40,8 +40,8 @@ public class DossierTemplatePersistenceService {
|
||||
|
||||
private final TypeRepository typeRepository;
|
||||
|
||||
private final int MAX_NAME_LENGTH = 255;
|
||||
private final int MAX_DESCRIPTION_LENGTH = 4000;
|
||||
private final static int MAX_NAME_LENGTH = 255;
|
||||
private final static int MAX_DESCRIPTION_LENGTH = 4000;
|
||||
|
||||
|
||||
@Transactional
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user