From b08cdd3a07f763c6b310a3403c69d4b9652a0e5c Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Thu, 5 Aug 2021 10:59:01 +0300 Subject: [PATCH] cleaned up code, added analysisVersion for analyseresult and interogation, usefull later --- .../redaction/v1/model/AnalyzeResult.java | 2 ++ .../redaction/v1/model/RedactionLog.java | 2 +- .../v1/model/RedactionServiceDetails.java | 14 +++++++++++ .../v1/resources/RedactionResource.java | 6 ++--- .../controller/RedactionController.java | 25 ++++++++----------- .../service/AnalyzeResponseService.java | 7 ++++++ .../service/DroolsExecutionService.java | 4 +-- .../redaction/service/ReanalyzeService.java | 4 ++- .../settings/RedactionServiceSettings.java | 2 ++ 9 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionServiceDetails.java diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/AnalyzeResult.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/AnalyzeResult.java index 5eadb70f..8d569c81 100644 --- a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/AnalyzeResult.java +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/AnalyzeResult.java @@ -27,6 +27,8 @@ public class AnalyzeResult { private boolean wasReanalyzed; + private int analysisVersion; + } 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 276363f8..942e36a6 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 @@ -15,7 +15,7 @@ public class RedactionLog { * Version 0 Redaction Logs have manual redactions merged inside them * Version 1 Redaction Logs only contain system ( rule/dictionary ) redactions. Manual Redactions are merged in at runtime. */ - private long computationalVersion; + private long analysisVersion; private List redactionLogEntry; private List legalBasis; diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionServiceDetails.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionServiceDetails.java new file mode 100644 index 00000000..4bb34591 --- /dev/null +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/RedactionServiceDetails.java @@ -0,0 +1,14 @@ +package com.iqser.red.service.redaction.v1.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class RedactionServiceDetails { + + private int analysisVersion; + +} diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/resources/RedactionResource.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/resources/RedactionResource.java index 3abe15f5..18871367 100644 --- a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/resources/RedactionResource.java +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/resources/RedactionResource.java @@ -24,13 +24,13 @@ public interface RedactionResource { @PostMapping(value = "/debug/htmlTables", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) RedactionResult htmlTables(@RequestBody RedactionRequest redactionRequest); - @PostMapping(value = "/rules/update" + RULE_SET_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void updateRules(@PathVariable(RULE_SET_PARAMETER_NAME) String dossierTemplateId); - @PostMapping(value = "/rules/test", consumes = MediaType.APPLICATION_JSON_VALUE) void testRules(@RequestBody String rules); @PostMapping(value = "/redaction-log/preview", consumes = MediaType.APPLICATION_JSON_VALUE) RedactionLog getRedactionLog(@RequestBody RedactionRequest redactionRequest); + @PostMapping(value = "/details", produces = MediaType.APPLICATION_JSON_VALUE) + RedactionServiceDetails getRedactionServiceDetails(); + } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java index 7691239a..33fa3ebf 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java @@ -1,11 +1,7 @@ package com.iqser.red.service.redaction.v1.server.controller; import com.iqser.red.service.file.management.v1.api.model.FileType; -import com.iqser.red.service.redaction.v1.model.AnnotateRequest; -import com.iqser.red.service.redaction.v1.model.AnnotateResponse; -import com.iqser.red.service.redaction.v1.model.RedactionLog; -import com.iqser.red.service.redaction.v1.model.RedactionRequest; -import com.iqser.red.service.redaction.v1.model.RedactionResult; +import com.iqser.red.service.redaction.v1.model.*; import com.iqser.red.service.redaction.v1.resources.RedactionResource; import com.iqser.red.service.redaction.v1.server.classification.model.Document; import com.iqser.red.service.redaction.v1.server.classification.model.Page; @@ -15,6 +11,7 @@ import com.iqser.red.service.redaction.v1.server.redaction.service.DictionarySer import com.iqser.red.service.redaction.v1.server.redaction.service.DroolsExecutionService; import com.iqser.red.service.redaction.v1.server.redaction.service.RedactionLogMergeService; import com.iqser.red.service.redaction.v1.server.segmentation.PdfSegmentationService; +import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings; import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table; @@ -42,6 +39,7 @@ public class RedactionController implements RedactionResource { private final PdfSegmentationService pdfSegmentationService; private final RedactionStorageService redactionStorageService; private final RedactionLogMergeService redactionLogMergeService; + private final RedactionServiceSettings redactionServiceSettings; public AnnotateResponse annotate(@RequestBody AnnotateRequest annotateRequest) { @@ -143,14 +141,6 @@ public class RedactionController implements RedactionResource { } - - @Override - public void updateRules(@PathVariable(RULE_SET_PARAMETER_NAME) String dossierTemplateId) { - - droolsExecutionService.updateRules(dossierTemplateId); - } - - @Override public void testRules(@RequestBody String rules) { @@ -165,8 +155,8 @@ public class RedactionController implements RedactionResource { var redactionLog = redactionStorageService.getRedactionLog(redactionRequest.getDossierId(), redactionRequest.getFileId()); - log.info("Loaded redaction log with computationalVersion: {}",redactionLog.getComputationalVersion()); - if (redactionLog.getComputationalVersion() == 0) { + log.info("Loaded redaction log with computationalVersion: {}", redactionLog.getAnalysisVersion()); + if (redactionLog.getAnalysisVersion() == 0) { // old redaction logs are returned directly return redactionLog; } else { @@ -174,6 +164,11 @@ public class RedactionController implements RedactionResource { } } + @Override + public RedactionServiceDetails getRedactionServiceDetails() { + return new RedactionServiceDetails(redactionServiceSettings.getAnalysisVersion()); + } + private RedactionResult convert(PDDocument document, int numberOfPages) throws IOException { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeResponseService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeResponseService.java index ff772521..2ddbcc46 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeResponseService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeResponseService.java @@ -5,11 +5,17 @@ import com.iqser.red.service.redaction.v1.model.RedactionChangeLog; import com.iqser.red.service.redaction.v1.model.RedactionLog; import com.iqser.red.service.redaction.v1.model.RedactionLogEntry; +import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @Service +@RequiredArgsConstructor public class AnalyzeResponseService { + private final RedactionServiceSettings redactionServiceSettings; + public AnalyzeResult createAnalyzeResponse(String dossierId, String fileId, long duration, int pageCount, RedactionLog redactionLog, RedactionChangeLog redactionChangeLog) { @@ -51,6 +57,7 @@ public class AnalyzeResponseService { .hasRequests(hasRequests) .hasImages(hasImages) .hasUpdates(hasUpdates) + .analysisVersion(redactionServiceSettings.getAnalysisVersion()) .rulesVersion(redactionLog.getRulesVersion()) .dictionaryVersion(redactionLog.getDictionaryVersion()) .legalBasisVersion(redactionLog.getLegalBasisVersion()) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java index bd26cc12..0ac53bc6 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java @@ -63,7 +63,7 @@ public class DroolsExecutionService { rulesVersion = -1L; } - if (version > rulesVersion.longValue()) { + if (version > rulesVersion) { rulesVersionPerDossierTemplateId.put(dossierTemplateId, version); return createOrUpdateKieContainer(dossierTemplateId); } @@ -128,7 +128,7 @@ public class DroolsExecutionService { if (rulesVersion == null) { return -1; } - return rulesVersion.longValue(); + return rulesVersion; } } 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 e2a19920..e3b37c5f 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 @@ -12,6 +12,7 @@ import com.iqser.red.service.redaction.v1.server.redaction.model.*; import com.iqser.red.service.redaction.v1.server.redaction.utils.EntitySearchUtils; import com.iqser.red.service.redaction.v1.server.redaction.utils.IdBuilder; import com.iqser.red.service.redaction.v1.server.segmentation.PdfSegmentationService; +import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings; import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; import lombok.RequiredArgsConstructor; @@ -41,6 +42,7 @@ public class ReanalyzeService { private final RedactionChangeLogService redactionChangeLogService; private final AnalyzeResponseService analyzeResponseService; private final LegalBasisClient legalBasisClient; + private final RedactionServiceSettings redactionServiceSettings; public AnalyzeResult analyze(AnalyzeRequest analyzeRequest) { @@ -67,7 +69,7 @@ public class ReanalyzeService { log.info("Redaction analysis successful..."); var legalBasis = legalBasisClient.getLegalBasisMapping(analyzeRequest.getDossierTemplateId()); - var redactionLog = new RedactionLog(1, classifiedDoc.getRedactionLogEntities(), legalBasis, classifiedDoc.getDictionaryVersion() + var redactionLog = new RedactionLog(redactionServiceSettings.getAnalysisVersion(), classifiedDoc.getRedactionLogEntities(), legalBasis, classifiedDoc.getDictionaryVersion() .getDossierTemplateVersion(), classifiedDoc.getDictionaryVersion() .getDossierVersion(), classifiedDoc.getRulesVersion(), legalBasisClient.getVersion(analyzeRequest.getDossierTemplateId())); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/settings/RedactionServiceSettings.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/settings/RedactionServiceSettings.java index 3d5b0b5b..dfc34079 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/settings/RedactionServiceSettings.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/settings/RedactionServiceSettings.java @@ -15,4 +15,6 @@ public class RedactionServiceSettings { private float maxImageCropboxRatio = 0.9f; + private int analysisVersion = 1; + }