RED-5624: Refactoring of justifications #605

Merged
yannik.hampe merged 7 commits from RED-5624 into master 2024-08-07 13:26:30 +02:00
10 changed files with 34 additions and 11 deletions

View File

@ -20,5 +20,7 @@ public class LegalBasisEntity {
private String description;
@Column(length = 4000)
private String reason;
@Column(length = 4000)
private String technicalName;
}

View File

@ -82,12 +82,14 @@ public class LegalBasisMappingPersistenceService {
.findAny().ifPresentOrElse(existingBasis -> {
existingBasis.setReason(legalBasis.getReason());
existingBasis.setDescription(legalBasis.getDescription());
existingBasis.setTechnicalName(legalBasis.getTechnicalName());
},
() -> mapping.getLegalBasis()
.add(LegalBasisEntity.builder()
.name(legalBasis.getName())
.description(legalBasis.getDescription())
.reason(legalBasis.getReason())
.technicalName(legalBasis.getTechnicalName())
.build()));
mapping.setVersion(mapping.getVersion() + 1);
@ -109,6 +111,10 @@ public class LegalBasisMappingPersistenceService {
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));
}
if(legalBasis.getTechnicalName().length() > MAX_LEGAL_BASIS_LENGTH) {
throw new BadRequestException(String.format("The legal basis is too long (%s), max length %s", legalBasis.getTechnicalName().length(), MAX_LEGAL_BASIS_LENGTH));
}
}

View File

@ -216,4 +216,6 @@ databaseChangeLog:
- include:
file: db/changelog/tenant/131-changed-max-size-for-id-in-entity.yaml
- include:
file: db/changelog/tenant/132-add-based-on-dict-annotation-id-to-manual_changes.yaml
file: db/changelog/tenant/132-add-based-on-dict-annotation-id-to-manual_changes.yaml
- include:
file: db/changelog/tenant/133-add-technical-name-to-legal_basis.yaml

View File

@ -0,0 +1,11 @@
databaseChangeLog:
- changeSet:
id: add-technical-name-to-legal-basis
author: yhampe
changes:
- addColumn:
columns:
- column:
name: technical_name
type: VARCHAR(255)
tableName: legal_basis_mapping_entity_legal_basis

View File

@ -80,7 +80,7 @@ public class DossierTemplateTesterAndProvider {
assertThat(loadedTemplate).isEqualTo(result);
rulesClient.upload(new RulesUploadRequestModel("ABCD", loadedTemplate.getDossierTemplateId(), RuleFileType.ENTITY));
legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("name", "description", "reason")), loadedTemplate.getDossierTemplateId());
legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("name", "description", "reason","technicalName")), loadedTemplate.getDossierTemplateId());
loadedTemplate = dossierTemplateClient.getDossierTemplate(result.getDossierTemplateId());

View File

@ -589,7 +589,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
.build());
// add new justifications
legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("nameAgain", "description", "reason")), dossierTemplate.getId());
legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("nameAgain", "description", "reason","technicalReason")), dossierTemplate.getId());
existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
assertThat(existingLegalBasis.size()).isEqualTo(1);

View File

@ -41,8 +41,8 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
}
var mappings = new ArrayList<LegalBasis>();
mappings.add(LegalBasis.builder().name("test 1").description("test 1").reason("test 1").build());
mappings.add(LegalBasis.builder().name("test 2").description("test 2").reason("test 2").build());
mappings.add(LegalBasis.builder().name("test 1").description("test 1").reason("test 1").technicalName("test 1").build());
mappings.add(LegalBasis.builder().name("test 2").description("test 2").reason("test 2").technicalName("test 2").build());
legalBasisClient.setLegalBasisMapping(mappings, dossierTemplate.getId());
var mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
@ -51,7 +51,7 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
.map(LegalBasis::getName)
.collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2");
var legalBasis = LegalBasis.builder().name("test 3").description("test 3").reason("test 3").build();
var legalBasis = LegalBasis.builder().name("test 3").description("test 3").reason("test 3").technicalName("test 3").build();
legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis);
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
@ -60,7 +60,7 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
.map(LegalBasis::getName)
.collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3");
legalBasis = LegalBasis.builder().name("test 3").reason("test 3").description("test 3 - updated").build();
legalBasis = LegalBasis.builder().name("test 3").reason("test 3").description("test 3 - updated").technicalName("test 3").build();
legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis);
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());

View File

@ -2530,10 +2530,10 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
List.of(entityLogEntry),
List.of(new EntityLogLegalBasis("1.1 personal data (incl. geolocation); Article 39(e)(3)",
"desc",
"Article 39(e)(3) of Regulation (EC) No 178/2002"),
"Article 39(e)(3) of Regulation (EC) No 178/2002",""),
new EntityLogLegalBasis("4. commercial information",
"desc 2",
"Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)")),
"Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)","")),
0,
0,
0,
@ -2600,10 +2600,10 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
List.of(entityLogEntry),
List.of(new EntityLogLegalBasis("1.1 personal data (incl. geolocation); Article 39(e)(3)",
"desc",
"Article 39(e)(3) of Regulation (EC) No 178/2002"),
"Article 39(e)(3) of Regulation (EC) No 178/2002", ""),
new EntityLogLegalBasis("4. commercial information",
"desc 2",
"Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)")),
"Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)","")),
0,
0,
0,

View File

@ -12,5 +12,6 @@ public class EntityLogLegalBasis {
private String name;
private String description;
private String reason;
private String technicalName;
}

View File

@ -14,5 +14,6 @@ public class LegalBasis {
private String name;
private String description;
private String reason;
private String technicalName;
}