Merge branch 'RED-9925' into 'master'

RED-9925: 500 when creating justification without technical name or name

Closes RED-9925

See merge request redactmanager/persistence-service!743
This commit is contained in:
Maverick Studer 2024-09-18 13:29:39 +02:00
commit cbce87430f
2 changed files with 29 additions and 2 deletions

View File

@ -5,6 +5,7 @@ import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicC
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
@ -74,16 +75,23 @@ public class LegalBasisMappingPersistenceService {
@Transactional
public void addOrUpdateLegalBasis(String dossierTemplateId, LegalBasis legalBasis) {
if (legalBasis.getTechnicalName() == null) {
throw new BadRequestException("Can not add or update legal basis in dossier template because technical name it is not set.");
}
if (legalBasis.getName() == null) {
throw new BadRequestException("Can not add or update legal basis in dossier template because name it is not set.");
}
var mapping = getLegalBasisMappingOrCreate(dossierTemplateId);
Optional<LegalBasisEntity> existingBasisByTechnicalName = mapping.getLegalBasis()
.stream()
.filter(l -> l.getTechnicalName().equals(legalBasis.getTechnicalName()))
.filter(l -> Objects.equals(l.getTechnicalName(), legalBasis.getTechnicalName()))
.findAny();
Optional<LegalBasisEntity> existingBasisByName = mapping.getLegalBasis()
.stream()
.filter(l -> l.getName().equals(legalBasis.getName()))
.filter(l -> Objects.equals(l.getName(), legalBasis.getName()))
.findAny();
if (existingBasisByTechnicalName.isPresent() && existingBasisByName.isPresent()) {

View File

@ -1,6 +1,8 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
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 java.util.ArrayList;
import java.util.stream.Collectors;
@ -76,6 +78,23 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
legalBasisClient.setLegalBasisMapping(Lists.newArrayList(), dossierTemplate.getId());
assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty();
legalBasis = LegalBasis.builder().name("test 4").description(null).reason("test ").technicalName("test 4").build();
legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis);
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
assertThat(mapping.size()).isEqualTo(1);
legalBasis = LegalBasis.builder().name("test 5").description("test 5").reason(null).technicalName("test 5").build();
legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis);
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
assertThat(mapping.size()).isEqualTo(2);
LegalBasis finalLegalBasis2 = LegalBasis.builder().name(null).description("test").reason("test").technicalName("test").build();
var e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), finalLegalBasis2));
assertEquals(e.status(), 400);
LegalBasis finalLegalBasis1 = LegalBasis.builder().name("test").description("test").reason("test").technicalName(null).build();
e = assertThrows(FeignException.class, () -> legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), finalLegalBasis1));
assertEquals(e.status(), 400);
}
}