Merge branch 'RED-9349-dossier' into 'master'

RED-9349 - Add check for dossier template length

Closes RED-9349

See merge request redactmanager/persistence-service!567
This commit is contained in:
Andrei Isvoran 2024-07-01 09:33:45 +02:00
commit 6c857290b8
2 changed files with 30 additions and 0 deletions

View File

@ -54,6 +54,8 @@ public class DossierService {
throw new BadRequestException("Dossier template is not active.");
}
validateDossierName(createOrUpdateDossierRequest);
try {
return dossierPersistenceService.insert(createOrUpdateDossierRequest);
} catch (Exception e) {
@ -68,6 +70,14 @@ public class DossierService {
}
private void validateDossierName(CreateOrUpdateDossierRequest createOrUpdateDossierRequest) {
if (createOrUpdateDossierRequest.getDossierName().length() > 254) {
throw new BadRequestException("Dossier name can not be longer than 254 characters");
}
}
public DossierEntity updateDossier(CreateOrUpdateDossierRequest dossierRequest, String dossierId) {
var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(dossierRequest.getDossierTemplateId());
@ -143,6 +153,7 @@ public class DossierService {
return dossierPersistenceService.findAllDossiersForDossierTemplateId(dossierTemplateId);
}
public Set<String> getAllDossierIdsForDossierTemplateId(String dossierTemplateId) {
return dossierPersistenceService.findAllDossierIdsForDossierTemplateId(dossierTemplateId);

View File

@ -2,6 +2,8 @@ package com.iqser.red.service.peristence.v1.server.integration.tests;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.time.OffsetDateTime;
import java.util.List;
@ -13,6 +15,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile;
import org.testcontainers.shaded.org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Sets;
import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient;
@ -522,4 +525,20 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
}
@Test
public void testCreateDossierWithNameLongerThan254Characters() {
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
dossierTemplateTesterAndProvider.provideDefaultColors(dossierTemplate.getId());
String validName = StringUtils.repeat("a", 254);
dossierTesterAndProvider.provideTestDossier(dossierTemplate, validName);
String invalidName = StringUtils.repeat("a", 255);
var result = assertThrows(FeignException.class, () -> dossierTesterAndProvider.provideTestDossier(dossierTemplate, invalidName));
assertTrue(result.getMessage().contains("Dossier name can not be longer than 254 characters"));
}
}