diff --git a/redaction-service-v1/redaction-service-api-v1/pom.xml b/redaction-service-v1/redaction-service-api-v1/pom.xml index a479f545..cb0d850a 100644 --- a/redaction-service-v1/redaction-service-api-v1/pom.xml +++ b/redaction-service-v1/redaction-service-api-v1/pom.xml @@ -17,5 +17,16 @@ spring-web true + + com.iqser.red.service + configuration-service-api-v1 + 2.7.0 + + + com.iqser.red.service + file-management-service-api-v1 + + + diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionLog.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionLog.java index b6c13b93..9c28f5fc 100644 --- a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionLog.java +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionLog.java @@ -1,32 +1,27 @@ package com.iqser.red.service.redaction.v1.model; +import com.iqser.red.service.configuration.v1.api.model.LegalBasisMapping; +import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import java.util.List; @Data -@NoArgsConstructor +@AllArgsConstructor public class RedactionLog { private List redactionLogEntry; - - private long dictionaryVersion = -1; - private long rulesVersion = -1; + private List legalBasis; private String ruleSetId; + private long dictionaryVersion = -1; + private long rulesVersion = -1; private long dossierDictionaryVersion = -1; + private long legalBasisVersion = -1; - public RedactionLog(List redactionLogEntry, long dictionaryVersion, long rulesVersion, String ruleSetId, long dossierDictionaryVersion) { - this.redactionLogEntry = redactionLogEntry; - this.dictionaryVersion = dictionaryVersion; - this.rulesVersion = rulesVersion; - this.ruleSetId = ruleSetId; - this.dossierDictionaryVersion = dossierDictionaryVersion; - } } diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionLogEntry.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionLogEntry.java index 6421c19e..deb34209 100644 --- a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionLogEntry.java +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionLogEntry.java @@ -3,6 +3,7 @@ package com.iqser.red.service.redaction.v1.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import java.util.ArrayList; @@ -12,6 +13,7 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor +@EqualsAndHashCode(of = "id") public class RedactionLogEntry { private String id; diff --git a/redaction-service-v1/redaction-service-server-v1/pom.xml b/redaction-service-v1/redaction-service-server-v1/pom.xml index 1975a136..ddb9b436 100644 --- a/redaction-service-v1/redaction-service-server-v1/pom.xml +++ b/redaction-service-v1/redaction-service-server-v1/pom.xml @@ -21,11 +21,6 @@ redaction-service-api-v1 ${project.version} - - com.iqser.red.service - configuration-service-api-v1 - 2.5.6 - com.iqser.red.service file-management-service-api-v1 @@ -35,6 +30,10 @@ com.iqser.red.service redaction-service-api-v1 + + com.iqser.red.service + configuration-service-api-v1 + diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/client/LegalBasisClient.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/client/LegalBasisClient.java new file mode 100644 index 00000000..1a68ab35 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/client/LegalBasisClient.java @@ -0,0 +1,8 @@ +package com.iqser.red.service.redaction.v1.server.client; + +import com.iqser.red.service.configuration.v1.api.resource.LegalBasisMappingResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "LegalBasisMappingResource", url = "${configuration-service.url}") +public interface LegalBasisClient extends LegalBasisMappingResource { +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ReanalyzeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ReanalyzeService.java index 4c8d2e0a..511d689e 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ReanalyzeService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ReanalyzeService.java @@ -5,6 +5,7 @@ import com.iqser.red.service.redaction.v1.model.*; import com.iqser.red.service.redaction.v1.server.classification.model.Document; import com.iqser.red.service.redaction.v1.server.classification.model.SectionText; import com.iqser.red.service.redaction.v1.server.classification.model.Text; +import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient; import com.iqser.red.service.redaction.v1.server.exception.RedactionException; import com.iqser.red.service.redaction.v1.server.redaction.model.Dictionary; import com.iqser.red.service.redaction.v1.server.redaction.model.*; @@ -38,7 +39,7 @@ public class ReanalyzeService { private final PdfSegmentationService pdfSegmentationService; private final RedactionChangeLogService redactionChangeLogService; private final AnalyzeResponseService analyzeResponseService; - + private final LegalBasisClient legalBasisClient; public AnalyzeResult analyze(AnalyzeRequest analyzeRequest) { @@ -64,9 +65,13 @@ public class ReanalyzeService { log.info("Redaction analysis successful..."); - var redactionLog = new RedactionLog(classifiedDoc.getRedactionLogEntities(), classifiedDoc.getDictionaryVersion() - .getRulesetVersion(), classifiedDoc.getRulesVersion(), analyzeRequest.getRuleSetId(), classifiedDoc.getDictionaryVersion() - .getDossierVersion()); + var legalBasis = legalBasisClient.getLegalBasisMapping(analyzeRequest.getRuleSetId()); + var redactionLog = new RedactionLog(classifiedDoc.getRedactionLogEntities(),legalBasis, + analyzeRequest.getRuleSetId(), + classifiedDoc.getDictionaryVersion().getRulesetVersion(), + classifiedDoc.getRulesVersion(), + classifiedDoc.getDictionaryVersion().getDossierVersion(), + legalBasisClient.getVersion(analyzeRequest.getRuleSetId())); log.info("Analyzed with rules {} and dictionary {} for ruleSet: {}", classifiedDoc.getRulesVersion(), classifiedDoc .getDictionaryVersion(), analyzeRequest.getRuleSetId()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java index 8b21791f..6f14d819 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java @@ -9,6 +9,7 @@ import com.iqser.red.service.redaction.v1.model.*; import com.iqser.red.service.redaction.v1.server.classification.model.SectionText; import com.iqser.red.service.redaction.v1.server.client.DictionaryClient; import com.iqser.red.service.redaction.v1.server.client.ImageClassificationClient; +import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient; import com.iqser.red.service.redaction.v1.server.client.RulesClient; import com.iqser.red.service.redaction.v1.server.controller.RedactionController; import com.iqser.red.service.redaction.v1.server.memory.MemoryStats; @@ -114,6 +115,9 @@ public class RedactionIntegrationTest { @MockBean private RabbitTemplate rabbitTemplate; + @MockBean + private LegalBasisClient legalBasisClient; + private final Map> dictionary = new HashMap<>(); private final Map> dossierDictionary = new HashMap<>(); private final Map typeColorMap = new HashMap<>(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java index b6cb00ca..512710d0 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java @@ -7,6 +7,7 @@ import com.iqser.red.service.redaction.v1.server.Application; import com.iqser.red.service.redaction.v1.server.FileSystemBackedStorageService; import com.iqser.red.service.redaction.v1.server.classification.model.Document; import com.iqser.red.service.redaction.v1.server.client.DictionaryClient; +import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient; import com.iqser.red.service.redaction.v1.server.client.RulesClient; import com.iqser.red.service.redaction.v1.server.redaction.model.Entity; import com.iqser.red.service.redaction.v1.server.redaction.utils.EntitySearchUtils; @@ -78,6 +79,9 @@ public class EntityRedactionServiceTest { @MockBean private AmazonS3 amazonS3; + @MockBean + private LegalBasisClient legalBasisClient; + private final static String TEST_RULESET_ID = "123"; @Configuration diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java index 44842b7d..2a2c3a37 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java @@ -5,6 +5,7 @@ import com.iqser.red.service.redaction.v1.server.Application; import com.iqser.red.service.redaction.v1.server.classification.model.Document; import com.iqser.red.service.redaction.v1.server.classification.model.Page; import com.iqser.red.service.redaction.v1.server.classification.service.BlockificationService; +import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient; import com.iqser.red.service.redaction.v1.server.redaction.model.PdfImage; import com.iqser.red.service.redaction.v1.server.tableextraction.model.Cell; import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table; @@ -62,6 +63,9 @@ public class PdfSegmentationServiceTest { @MockBean private RabbitTemplate rabbitTemplate; + @MockBean + private LegalBasisClient legalBasisClient; + @Configuration @EnableAutoConfiguration(exclude = { RabbitAutoConfiguration.class}) public static class TestConfiguration {