From 17667d067d9a35957ca1ff9e5a85daee2cad8798 Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Fri, 23 Feb 2024 09:10:35 +0200 Subject: [PATCH] RED-8589 - Add "MANUAL" engine to all annotations that has entries in manualChanges - add Engine.Manual for manual changes in the entity log entries in case the analysis is stopped Signed-off-by: Corina Olariu --- .../v1/processor/service/EntityLogMergeService.java | 9 ++++++++- .../v1/server/integration/tests/EntityLogMergeTest.java | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index 0eb85f2a6..d5cd54bbd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -11,6 +11,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -29,6 +30,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequ import com.iqser.red.service.persistence.service.v1.api.shared.model.MessageType; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Change; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ChangeType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Engine; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState; @@ -149,7 +151,7 @@ public class EntityLogMergeService { .excluded(false) .changes(changes) .manualChanges(manualChanges) - .engines(new HashSet<>()) + .engines(Set.of(Engine.MANUAL)) .reference(new HashSet<>()) .importedRedactionIntersections(new HashSet<>()) .build(); @@ -183,6 +185,7 @@ public class EntityLogMergeService { var entity = entityLogEntries.stream().filter(entityLogEntry -> entityLogEntry.getId().equals(idRemoval.getAnnotationId())).findAny(); entity.ifPresent(entityLogEntry -> { entityLogEntry.setState(EntryState.IGNORED); + entityLogEntry.getEngines().add(Engine.MANUAL); addChanges(entityLogEntry.getChanges(), ChangeType.REMOVED, analysisNumber, idRemoval.getRequestDate()); entityLogEntry.getManualChanges() .add(ManualChange.builder() @@ -203,6 +206,7 @@ public class EntityLogMergeService { entityLogEntry.setTextBefore(manualResizeRedaction.getTextBefore()); entityLogEntry.setPositions(convertPositions(manualResizeRedaction.getPositions())); entityLogEntry.setValue(manualResizeRedaction.getValue()); + entityLogEntry.getEngines().add(Engine.MANUAL); addChanges(entityLogEntry.getChanges(), ChangeType.CHANGED, analysisNumber, manualResizeRedaction.getRequestDate()); ManualChange.ManualChangeBuilder manualChange = ManualChange.builder() .manualRedactionType(manualResizeRedaction.getUpdateDictionary() ? ManualRedactionType.RESIZE_IN_DICTIONARY : ManualRedactionType.RESIZE) @@ -224,6 +228,7 @@ public class EntityLogMergeService { entityLogEntry.setLegalBasis(manualLegalBasisChange.getLegalBasis()); entityLogEntry.setSection(manualLegalBasisChange.getSection()); entityLogEntry.setValue(manualLegalBasisChange.getValue()); + entityLogEntry.getEngines().add(Engine.MANUAL); addChanges(entityLogEntry.getChanges(), ChangeType.CHANGED, analysisNumber, manualLegalBasisChange.getRequestDate()); Map propertyChanges = getPropertyChanges(manualLegalBasisChange); entityLogEntry.getManualChanges() @@ -263,6 +268,7 @@ public class EntityLogMergeService { entityLogEntry.setType(recategorization.getType()); entityLogEntry.setEntryType(getEntryType(isHint, recategorization.getType())); entityLogEntry.setState(isHint ? EntryState.SKIPPED : EntryState.APPLIED); + entityLogEntry.getEngines().add(Engine.MANUAL); addChanges(entityLogEntry.getChanges(), ChangeType.CHANGED, analysisNumber, recategorization.getRequestDate()); entityLogEntry.getManualChanges() .add(ManualChange.builder() @@ -282,6 +288,7 @@ public class EntityLogMergeService { entity.ifPresent(entityLogEntry -> { entityLogEntry.setLegalBasis(forceRedaction.getLegalBasis()); entityLogEntry.setState(entityLogEntry.getEntryType().equals(EntryType.HINT) ? EntryState.SKIPPED : EntryState.APPLIED); + entityLogEntry.getEngines().add(Engine.MANUAL); addChanges(entityLogEntry.getChanges(), ChangeType.CHANGED, analysisNumber, forceRedaction.getRequestDate()); var forceRedactManualChange = ManualChange.builder() .manualRedactionType(entityLogEntry.getEntryType().equals(EntryType.HINT) ? ManualRedactionType.FORCE_HINT : ManualRedactionType.FORCE_REDACT) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java index e90b7d0f2..543a82925 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java @@ -40,6 +40,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ChangeType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Engine; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState; @@ -145,6 +146,7 @@ public class EntityLogMergeTest { assertEquals(entityLogEntry.getState(), EntryState.APPLIED); assertEquals(entityLogEntry.getValue(), "Test"); assertEquals(entityLogEntry.getReason(), "Reason"); + assertTrue(entityLogEntry.getEngines().contains(Engine.MANUAL)); assertEquals(entityLogEntry.getManualChanges().get(0).getManualRedactionType(), ManualRedactionType.ADD_LOCALLY); var optionalRemoveEntryLogEntry = response.getEntityLogEntry().stream().filter(entityLogEntry1 -> entityLogEntry1.getId().equals(entryToRemoveId)).findFirst(); @@ -154,6 +156,7 @@ public class EntityLogMergeTest { assertEquals(removeEntryLogEntry.getState(), EntryState.IGNORED); assertEquals(removeEntryLogEntry.getManualChanges().get(0).getManualRedactionType(), ManualRedactionType.REMOVE_LOCALLY); assertEquals(removeEntryLogEntry.getChanges().get(0).getType(), ChangeType.REMOVED); + assertTrue(removeEntryLogEntry.getEngines().contains(Engine.MANUAL)); var optionalResizeEntryLogEntry = response.getEntityLogEntry().stream().filter(entityLogEntry1 -> entityLogEntry1.getId().equals(entryToResizeId)).findFirst(); assertTrue(optionalResizeEntryLogEntry.isPresent()); @@ -167,6 +170,7 @@ public class EntityLogMergeTest { assertEquals(resizeEntryLogEntry.getState(), EntryState.APPLIED); assertEquals(resizeEntryLogEntry.getManualChanges().get(0).getManualRedactionType(), ManualRedactionType.RESIZE); assertEquals(resizeEntryLogEntry.getChanges().get(0).getType(), ChangeType.CHANGED); + assertTrue(resizeEntryLogEntry.getEngines().contains(Engine.MANUAL)); var optionalLegalBasisEntryLogEntry = response.getEntityLogEntry().stream().filter(entityLogEntry1 -> entityLogEntry1.getId().equals(entryLegalBasisId)).findFirst(); assertTrue(optionalLegalBasisEntryLogEntry.isPresent()); @@ -176,6 +180,7 @@ public class EntityLogMergeTest { assertEquals(legalBasisEntryLogEntry.getState(), EntryState.APPLIED); assertEquals(legalBasisEntryLogEntry.getManualChanges().get(0).getManualRedactionType(), ManualRedactionType.LEGAL_BASIS_CHANGE); assertEquals(legalBasisEntryLogEntry.getChanges().get(0).getType(), ChangeType.CHANGED); + assertTrue(legalBasisEntryLogEntry.getEngines().contains(Engine.MANUAL)); var optionalForceRedactionEntryLogEntry = response.getEntityLogEntry().stream().filter(entityLogEntry1 -> entityLogEntry1.getId().equals(forceRedactionId)).findFirst(); assertTrue(optionalForceRedactionEntryLogEntry.isPresent()); @@ -185,6 +190,7 @@ public class EntityLogMergeTest { assertEquals(forceRedactionEntryLogEntry.getState(), EntryState.APPLIED); assertEquals(forceRedactionEntryLogEntry.getManualChanges().get(0).getManualRedactionType(), ManualRedactionType.FORCE_REDACT); assertEquals(forceRedactionEntryLogEntry.getChanges().get(0).getType(), ChangeType.CHANGED); + assertTrue(forceRedactionEntryLogEntry.getEngines().contains(Engine.MANUAL)); var optionalRectangleEntryLogEntry = response.getEntityLogEntry().stream().filter(entityLogEntry1 -> entityLogEntry1.getId().equals(rectangleToAddId)).findFirst(); assertTrue(optionalRectangleEntryLogEntry.isPresent()); @@ -195,6 +201,7 @@ public class EntityLogMergeTest { assertEquals(rectangleEntryLogEntry.getValue(), "Test2"); assertEquals(rectangleEntryLogEntry.getReason(), "Rectangle"); assertEquals(rectangleEntryLogEntry.getManualChanges().get(0).getManualRedactionType(), ManualRedactionType.ADD_LOCALLY); + assertTrue(rectangleEntryLogEntry.getEngines().contains(Engine.MANUAL)); }