RED-7185 - Error message when adjusting the Justification #130
@ -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) {
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user