RED-7185 - Error message when adjusting the Justification #130

Merged
andrei.isvoran.ext merged 1 commits from RED-7185-fix into master 2023-09-20 12:02:17 +02:00
2 changed files with 37 additions and 0 deletions

View File

@ -40,11 +40,15 @@ public class DossierTemplatePersistenceService {
private final TypeRepository typeRepository;
private final int MAX_NAME_LENGTH = 255;
private final int MAX_DESCRIPTION_LENGTH = 4000;
@Transactional
public DossierTemplateEntity createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest createOrUpdateDossierRequest) {
if (createOrUpdateDossierRequest.getDossierTemplateId() != null) {
validateDossierTemplate(createOrUpdateDossierRequest.getName(), createOrUpdateDossierRequest.getDescription());
Optional<DossierTemplateEntity> dossierTemplate = dossierTemplateRepository.findById(createOrUpdateDossierRequest.getDossierTemplateId());
if (dossierTemplate.isPresent()) {
@ -66,6 +70,7 @@ public class DossierTemplatePersistenceService {
throw new ConflictException("DossierTemplate name must be set");
}
validateDossierTemplateNameIsUnique(createOrUpdateDossierRequest.getName());
validateDossierTemplate(createOrUpdateDossierRequest.getName(), createOrUpdateDossierRequest.getDescription());
DossierTemplateEntity dossierTemplate = new DossierTemplateEntity();
dossierTemplate.setId(UUID.randomUUID().toString());
// order is important
@ -90,6 +95,18 @@ public class DossierTemplatePersistenceService {
}
}
private void validateDossierTemplate(String name, String description) {
if (name.length() > MAX_NAME_LENGTH) {
throw new BadRequestException(String.format("The name is too long (%s), max length %s", name.length(), MAX_NAME_LENGTH));
}
if (!StringUtils.isEmpty(description) && description.length() > MAX_DESCRIPTION_LENGTH) {
throw new BadRequestException(String.format("The description is too long (%s), max length %s", description.length(), MAX_DESCRIPTION_LENGTH));
}
}
@Transactional
public boolean isDossierTemplateNameNotUnique(String templateName) {

View File

@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisMappingEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis;
@ -24,6 +25,9 @@ public class LegalBasisMappingPersistenceService {
private final LegalBasisMappingRepository legalBasisMappingRepository;
private final int MAX_NAME_LENGTH = 255;
private final int MAX_LEGAL_BASIS_LENGTH = 4000;
@Transactional
public void deleteLegalBasis(String dossierTemplateId, List<String> legalBasisNames) {
@ -65,6 +69,7 @@ public class LegalBasisMappingPersistenceService {
@Transactional
public void addOrUpdateLegalBasis(String dossierTemplateId, LegalBasis legalBasis) {
validateLegalBasis(legalBasis);
var mapping = getLegalBasisMappingOrCreate(dossierTemplateId);
mapping.getLegalBasis().stream().filter(l -> l.getName().equals(legalBasis.getName())).findAny().ifPresentOrElse(existingBasis -> {
@ -79,6 +84,21 @@ public class LegalBasisMappingPersistenceService {
}
private void validateLegalBasis(LegalBasis legalBasis) {
if (legalBasis.getName().length() > MAX_NAME_LENGTH) {
throw new BadRequestException(String.format("The name is too long (%s), max length %s", legalBasis.getName().length(), MAX_NAME_LENGTH));
}
if (legalBasis.getDescription().length() > MAX_LEGAL_BASIS_LENGTH) {
throw new BadRequestException(String.format("The description is too long (%s), max length %s", legalBasis.getDescription().length(), MAX_LEGAL_BASIS_LENGTH));
}
if (legalBasis.getReason().length() > MAX_LEGAL_BASIS_LENGTH) {
throw new BadRequestException(String.format("The legal basis is too long (%s), max length %s", legalBasis.getReason().length(), MAX_LEGAL_BASIS_LENGTH));
}
}
@Transactional
public void setLegalBasisMapping(String dossierTemplateId, List<LegalBasis> legalBasisMapping) {