Merge branch 'RED-8489' into 'master'

RED-8494 - Don't allow creation of File Attributes with empty label

Closes RED-8489

See merge request redactmanager/persistence-service!357
This commit is contained in:
Andrei Isvoran 2024-02-19 17:33:44 +01:00
commit 11fa795977
2 changed files with 18 additions and 1 deletions

View File

@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
@ -99,6 +100,10 @@ public class FileAttributeConfigPersistenceService {
@Transactional
public FileAttributeConfigEntity addOrUpdateFileAttribute(String dossierTemplateId, FileAttributeConfigEntity fileAttributeConfig) {
if (StringUtils.isEmpty(fileAttributeConfig.getLabel())) {
throw new BadRequestException("File Attribute label can not be empty.");
}
var dossierTemplate = dossierTemplateRepository.getOne(dossierTemplateId);
fileAttributeConfig.setDossierTemplate(dossierTemplate);
if (fileAttributeConfig.isPrimaryAttribute()) {

View File

@ -5,6 +5,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.service.
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.ArrayList;
import java.util.HashMap;
@ -18,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mock.web.MockMultipartFile;
import com.google.common.collect.Sets;
import com.iqser.red.service.peristence.v1.server.integration.client.FileAttributeClient;
import com.iqser.red.service.peristence.v1.server.integration.client.FileAttributeConfigClient;
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
@ -29,6 +29,7 @@ import com.iqser.red.service.peristence.v1.server.integration.service.FileTester
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributes;
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributesConfig;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeConfig;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeType;
@ -311,4 +312,15 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
}
@SneakyThrows
@Test
public void testFileAttributeWithNoLabel() {
Dossier dossier = dossierTesterAndProvider.provideTestDossier();
FeignException exception = assertThrows(FeignException.class, () -> fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), new FileAttributeConfig()));
assertTrue(exception.getMessage().contains("File Attribute label can not be empty."));
assertEquals(400, exception.status());
}
}