diff --git a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts index e1fc1bb3..978b4bf9 100644 --- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts @@ -16,7 +16,7 @@ val layoutParserVersion = "0.96.0" val jacksonVersion = "2.15.2" val droolsVersion = "9.44.0.Final" val pdfBoxVersion = "3.0.0" -val persistenceServiceVersion = "2.360.0" +val persistenceServiceVersion = "2.366.0" val springBootStarterVersion = "3.1.5" configurations { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/RedactionLogToEntityLogMigrationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/RedactionLogToEntityLogMigrationService.java index a83069a1..c9c4f996 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/RedactionLogToEntityLogMigrationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/RedactionLogToEntityLogMigrationService.java @@ -34,7 +34,6 @@ import com.iqser.red.service.redaction.v1.server.model.document.nodes.Image; import com.iqser.red.service.redaction.v1.server.model.document.nodes.ImageType; import com.iqser.red.service.redaction.v1.server.service.DictionaryService; import com.iqser.red.service.redaction.v1.server.service.ManualChangesApplicationService; -import com.iqser.red.service.redaction.v1.server.service.document.EntityEnrichmentService; import com.iqser.red.service.redaction.v1.server.service.document.EntityFindingUtility; import com.iqser.red.service.redaction.v1.server.service.document.EntityFromPrecursorCreationService; import com.iqser.red.service.redaction.v1.server.utils.IdBuilder; @@ -54,7 +53,6 @@ public class RedactionLogToEntityLogMigrationService { private static final double MATCH_THRESHOLD = 10; EntityFindingUtility entityFindingUtility; - EntityEnrichmentService entityEnrichmentService; DictionaryService dictionaryService; ManualChangesApplicationService manualChangesApplicationService; @@ -67,8 +65,8 @@ public class RedactionLogToEntityLogMigrationService { MigratedIds migratedIds = entitiesToMigrate.stream() .collect(new MigratedIdsCollector()); - applyManualChanges(entitiesToMigrate, manualRedactions); log.info("applying manual changes to migrated entities for file {}", fileId); + applyManualChanges(entitiesToMigrate, manualRedactions); EntityLog entityLog = new EntityLog(); entityLog.setAnalysisNumber(redactionLog.getAnalysisNumber()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java index 4761da03..8b928ecd 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java @@ -4,6 +4,7 @@ import static com.iqser.red.service.redaction.v1.server.service.EntityLogCreator import static com.iqser.red.service.redaction.v1.server.service.EntityLogCreatorService.buildEntryType; import java.awt.geom.Rectangle2D; +import java.time.OffsetDateTime; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -20,6 +21,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.BaseAnnotation; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.ManualRedactionType; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry; import com.iqser.red.service.redaction.v1.server.migration.MigrationMapper; @@ -350,18 +352,8 @@ public final class MigrationEntity { manualChanges.addAll(manualChangesToApply); manualChangesToApply.forEach(manualChange -> { if (manualChange instanceof ManualResizeRedaction manualResizeRedaction && migratedEntity instanceof TextEntity textEntity) { - // Due to the value in the old redaction log already being resized, there is no way to find the original entity ID and therefore to migrate the resize annotation correctly. - // Instead, we add an add_locally change to the db. - ManualResizeRedaction migratedManualResizeRedaction = ManualResizeRedaction.builder() - .positions(manualResizeRedaction.getPositions()) - .annotationId(getNewId()) - .updateDictionary(manualResizeRedaction.getUpdateDictionary()) - .addToAllDossiers(manualResizeRedaction.isAddToAllDossiers()) - .requestDate(manualResizeRedaction.getRequestDate()) - .textAfter(manualResizeRedaction.getTextAfter()) - .textBefore(manualResizeRedaction.getTextBefore()) - .build(); - manualChangesApplicationService.resize(textEntity, migratedManualResizeRedaction); + manualResizeRedaction.setAnnotationId(newId); + manualChangesApplicationService.resize(textEntity, manualResizeRedaction); } else { migratedEntity.getManualOverwrite().addChange(manualChange); } @@ -379,26 +371,28 @@ public final class MigrationEntity { .findFirst() .orElse(manualChanges.get(0)).getUser(); - var requestDate = manualChanges.stream() + OffsetDateTime requestDate = manualChanges.stream() .filter(mc -> mc instanceof ManualResizeRedaction) .findFirst() .orElse(manualChanges.get(0)).getRequestDate(); - return ManualRedactionEntry.builder() .annotationId(newId) .fileId(fileId) + .user(user) + .requestDate(requestDate) .type(redactionLogEntry.getType()) .value(redactionLogEntry.getValue()) .reason(redactionLogEntry.getReason()) .legalBasis(redactionLogEntry.getLegalBasis()) .section(redactionLogEntry.getSection()) - .requestDate(requestDate) + .rectangle(false) .addToDictionary(false) .addToDossierDictionary(false) - .rectangle(false) .positions(buildPositions(migratedEntity)) - .user(user) + .textAfter(redactionLogEntry.getTextAfter()) + .textBefore(redactionLogEntry.getTextBefore()) + .dictionaryEntryType(DictionaryEntryType.ENTRY) .build(); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFindingUtility.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFindingUtility.java index 16067268..251016d8 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFindingUtility.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFindingUtility.java @@ -58,7 +58,7 @@ public class EntityFindingUtility { List possibleEntities = entitiesWithSameValue.get(precursorEntity.getValue().toLowerCase(Locale.ENGLISH)); if (entityIdentifierValueNotFound(possibleEntities)) { - log.warn("Entity could not be created with precursorEntity: {}, due to the value {} not being found anywhere.", precursorEntity, precursorEntity.getValue()); + log.info("Entity could not be created with precursorEntity: {}, due to the value {} not being found anywhere.", precursorEntity, precursorEntity.getValue()); return Optional.empty(); } @@ -68,13 +68,13 @@ public class EntityFindingUtility { .min(Comparator.comparingDouble(ClosestEntity::getDistance)); if (optionalClosestEntity.isEmpty()) { - log.warn("No Entity with value {} found on page {}", precursorEntity.getValue(), precursorEntity.getEntityPosition()); + log.info("No Entity with value {} found on page {}", precursorEntity.getValue(), precursorEntity.getEntityPosition()); return Optional.empty(); } ClosestEntity closestEntity = optionalClosestEntity.get(); if (closestEntity.getDistance() > matchThreshold) { - log.warn("For entity {} on page {} with positions {} distance to closest found entity is {} and therefore higher than the threshold of {}", + log.info("For entity {} on page {} with positions {} distance to closest found entity is {} and therefore higher than the threshold of {}", precursorEntity.getValue(), precursorEntity.getEntityPosition() .get(0).pageNumber(), diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFromPrecursorCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFromPrecursorCreationService.java index 22402160..7607a990 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFromPrecursorCreationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFromPrecursorCreationService.java @@ -9,7 +9,6 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.imported.ImportedRedactions; @@ -23,29 +22,21 @@ import com.iqser.red.service.redaction.v1.server.model.document.nodes.SemanticNo import com.iqser.red.service.redaction.v1.server.service.DictionaryService; import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import lombok.extern.slf4j.Slf4j; @Slf4j @Service +@RequiredArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) public class EntityFromPrecursorCreationService { static double MATCH_THRESHOLD = 10; // Is compared to the average sum of distances in pdf coordinates for each corner of the bounding box of the entities EntityFindingUtility entityFindingUtility; - EntityCreationService entityCreationService; DictionaryService dictionaryService; - @Autowired - public EntityFromPrecursorCreationService(EntityEnrichmentService entityEnrichmentService, DictionaryService dictionaryService, EntityFindingUtility entityFindingUtility) { - - this.entityFindingUtility = entityFindingUtility; - entityCreationService = new EntityCreationService(entityEnrichmentService); - this.dictionaryService = dictionaryService; - } - - public List createEntitiesIfFoundAndReturnNotFoundEntries(ManualRedactions manualRedactions, SemanticNode node, String dossierTemplateId) { Set idRemovals = manualRedactions.getIdsToRemove(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionAcceptanceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionAcceptanceTest.java index 43f83f24..487efba8 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionAcceptanceTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionAcceptanceTest.java @@ -218,7 +218,7 @@ public class RedactionAcceptanceTest extends AbstractRedactionIntegrationTest { private static IdRemoval buildIdRemoval(String id) { - return IdRemoval.builder().annotationId(id).requestDate(OffsetDateTime.now()).fileId(TEST_FILE_ID).build(); + return IdRemoval.builder().annotationId(id).user("user").requestDate(OffsetDateTime.now()).fileId(TEST_FILE_ID).build(); } } 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 65562ee7..93bc4335 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 @@ -218,10 +218,12 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { ManualRedactions manualRedactions = ManualRedactions.builder() .resizeRedactions(Set.of(ManualResizeRedaction.builder() .annotationId("c6be5277f5ee60dc3d83527798b7fe02") + .fileId(TEST_FILE_ID) .value("Dr. Alan") .positions(List.of(new Rectangle(236.8f, 182.90005f, 40.584f, 12.642f, 7))) .requestDate(OffsetDateTime.now()) .updateDictionary(false) + .user("user") .build())) .build(); @@ -657,6 +659,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .fileId("fileId") .type("signature") .requestDate(OffsetDateTime.now()) + .user("user") .build())); request.setManualRedactions(manualRedactions); @@ -711,6 +714,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .annotationId("308dab9015bfafd911568cffe0a7f7de") .fileId(TEST_FILE_ID) .requestDate(OffsetDateTime.of(2022, 05, 23, 8, 30, 07, 475479, ZoneOffset.UTC)) + .user("user") .processedDate(OffsetDateTime.of(2022, 05, 23, 8, 30, 07, 483651, ZoneOffset.UTC)) .build()); @@ -719,6 +723,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .annotationId("0b56ea1a87c83f351df177315af94f0d") .fileId(TEST_FILE_ID) .legalBasis("Something") + .user("user") .requestDate(OffsetDateTime.of(2022, 05, 23, 9, 30, 15, 4653, ZoneOffset.UTC)) .processedDate(OffsetDateTime.of(2022, 05, 23, 9, 30, 15, 794, ZoneOffset.UTC)) .build()); @@ -727,6 +732,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .add(IdRemoval.builder() .annotationId("0b56ea1a87c83f351df177315af94f0d") .fileId(TEST_FILE_ID) + .user("user") .requestDate(OffsetDateTime.of(2022, 05, 23, 8, 30, 23, 961721, ZoneOffset.UTC)) .processedDate(OffsetDateTime.of(2022, 05, 23, 8, 30, 23, 96528, ZoneOffset.UTC)) .build()); @@ -946,6 +952,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .textBefore("") .updateDictionary(false) .textAfter("") + .user("user") .build(); manualRedactions.getResizeRedactions().add(manualResizeRedaction); @@ -1033,12 +1040,14 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { manualRedactions.setIdsToRemove(Set.of(IdRemoval.builder() .annotationId("5b940b2cb401ed9f5be6fc24f6e77bcf") .fileId("fileId") + .user("user") .processedDate(OffsetDateTime.now()) .requestDate(OffsetDateTime.now()) .build())); manualRedactions.setForceRedactions(Set.of(ManualForceRedaction.builder() .annotationId("675eba69b0c2917de55462c817adaa05") .fileId("fileId") + .user("user") .legalBasis("Something") .requestDate(OffsetDateTime.now()) .processedDate(OffsetDateTime.now()) @@ -1249,6 +1258,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .requestDate(OffsetDateTime.now()) .fileId(TEST_FILE_ID) .legalBasis("Article 39(e)(2) of Regulation (EC) No 178/2002") + .user("user") .build())) .build()); @@ -1289,6 +1299,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .requestDate(OffsetDateTime.now()) .fileId(TEST_FILE_ID) .legalBasis("Article 39(e)(2) of Regulation (EC) No 178/2002") + .user("user") .build())) .recategorizations(Set.of(ManualRecategorization.builder() .annotationId("3029651d0842a625f2d23f8375c23600") @@ -1296,6 +1307,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .legalBasis("") .requestDate(OffsetDateTime.now()) .fileId(TEST_FILE_ID) + .user("user") .build())) .build()); @@ -1456,6 +1468,8 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { .resizeRedactions(Set.of(ManualResizeRedaction.builder() .updateDictionary(true) .annotationId(david.getId()) + .fileId(TEST_FILE_ID) + .user("user") .requestDate(OffsetDateTime.now()) .value("David Ksenia") .positions(List.of(Rectangle.builder() @@ -1483,7 +1497,14 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { private IdRemoval getIdRemoval(String id) { - return IdRemoval.builder().annotationId(id).removeFromAllDossiers(false).removeFromDictionary(false).requestDate(OffsetDateTime.now()).build(); + return IdRemoval.builder() + .annotationId(id) + .removeFromAllDossiers(false) + .fileId(TEST_FILE_ID) + .user("user") + .removeFromDictionary(false) + .requestDate(OffsetDateTime.now()) + .build(); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesEnd2EndTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesEnd2EndTest.java index 346af17c..75e0a12c 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesEnd2EndTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesEnd2EndTest.java @@ -181,6 +181,7 @@ public class ManualChangesEnd2EndTest extends AbstractRedactionIntegrationTest { manualRedactions.getResizeRedactions() .add(ManualResizeRedaction.builder() .annotationId(idToResize) + .fileId(TEST_FILE_ID) .value(expandedEntityKeyword) .positions(List.of(Rectangle.builder().topLeftX(56.8f).topLeftY(454.664f).height(15.408f).width(493.62f).page(3).build(), Rectangle.builder().topLeftX(56.8f).topLeftY(440.864f).height(15.408f).width(396f).page(3).build())) diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesIntegrationTest.java index 5e5f4ded..ce91c661 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesIntegrationTest.java @@ -54,6 +54,8 @@ public class ManualChangesIntegrationTest extends RulesIntegrationTest { .get(0).getId(); ManualResizeRedaction manualResizeRedaction = ManualResizeRedaction.builder() .annotationId(initialId) + .fileId(TEST_FILE_ID) + .user("user") .value(biggerEntity.getValue()) .positions(toAnnotationRectangles(biggerEntity.getPositionsOnPagePerPage() .get(0))) @@ -95,7 +97,13 @@ public class ManualChangesIntegrationTest extends RulesIntegrationTest { String initialId = entity.getPositionsOnPagePerPage() .get(0).getId(); - ManualForceRedaction manualForceRedaction = ManualForceRedaction.builder().annotationId(initialId).legalBasis("Something").requestDate(OffsetDateTime.now()).build(); + ManualForceRedaction manualForceRedaction = ManualForceRedaction.builder() + .annotationId(initialId) + .fileId(TEST_FILE_ID) + .user("user") + .legalBasis("Something") + .requestDate(OffsetDateTime.now()) + .build(); doAnalysis(document, List.of(manualForceRedaction)); @@ -131,7 +139,7 @@ public class ManualChangesIntegrationTest extends RulesIntegrationTest { String initialId = entity.getPositionsOnPagePerPage() .get(0).getId(); - IdRemoval idRemoval = IdRemoval.builder().annotationId(initialId).requestDate(OffsetDateTime.now()).build(); + IdRemoval idRemoval = IdRemoval.builder().annotationId(initialId).requestDate(OffsetDateTime.now()).fileId(TEST_FILE_ID).user("user").build(); doAnalysis(document, List.of(idRemoval)); @@ -159,8 +167,13 @@ public class ManualChangesIntegrationTest extends RulesIntegrationTest { String initialId = entity.getPositionsOnPagePerPage() .get(0).getId(); - IdRemoval idRemoval = IdRemoval.builder().annotationId(initialId).requestDate(OffsetDateTime.now()).build(); - ManualForceRedaction manualForceRedaction = ManualForceRedaction.builder().annotationId(initialId).legalBasis("Something").requestDate(OffsetDateTime.now()).build(); + ManualForceRedaction manualForceRedaction = ManualForceRedaction.builder() + .annotationId(initialId) + .legalBasis("Something") + .requestDate(OffsetDateTime.now()) + .fileId(TEST_FILE_ID) + .user("user") + .build(); doAnalysis(document, List.of(manualForceRedaction)); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesUnitTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesUnitTest.java index 0ff00218..4e12dd27 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesUnitTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/ManualChangesUnitTest.java @@ -58,7 +58,7 @@ public class ManualChangesUnitTest extends BuildDocumentIntegrationTest { .get(0).getId(); // remove first - IdRemoval removal = IdRemoval.builder().requestDate(start).fileId(TEST_FILE_ID).annotationId(annotationId).build(); + IdRemoval removal = IdRemoval.builder().requestDate(start).fileId(TEST_FILE_ID).user("user").annotationId(annotationId).build(); entity.getManualOverwrite().addChange(removal); assertTrue(entity.ignored()); assertFalse(entity.applied()); @@ -68,6 +68,7 @@ public class ManualChangesUnitTest extends BuildDocumentIntegrationTest { ManualForceRedaction forceRedaction = ManualForceRedaction.builder() .requestDate(start.plusSeconds(1)) .fileId(TEST_FILE_ID) + .user("user") .annotationId(annotationId) .legalBasis("coolio") .build(); @@ -81,7 +82,7 @@ public class ManualChangesUnitTest extends BuildDocumentIntegrationTest { .orElse(entity.getMatchedRule().getLegalBasis())); // remove again - IdRemoval removal2 = IdRemoval.builder().requestDate(start.plusSeconds(3)).fileId(TEST_FILE_ID).annotationId(annotationId).build(); + IdRemoval removal2 = IdRemoval.builder().requestDate(start.plusSeconds(3)).fileId(TEST_FILE_ID).annotationId(annotationId).user("user").build(); entity.getManualOverwrite().addChange(removal2); assertTrue(entity.ignored()); assertFalse(entity.applied()); @@ -91,6 +92,7 @@ public class ManualChangesUnitTest extends BuildDocumentIntegrationTest { ManualForceRedaction forceRedaction2 = ManualForceRedaction.builder() .requestDate(start.plusSeconds(2)) .fileId(TEST_FILE_ID) + .user("user") .annotationId(annotationId) .legalBasis("coolio") .build(); @@ -108,6 +110,7 @@ public class ManualChangesUnitTest extends BuildDocumentIntegrationTest { .annotationId(annotationId) .requestDate(start.plusSeconds(4)) .section(section) + .fileId(TEST_FILE_ID) .user("peter") .value(value) .build(); @@ -129,6 +132,8 @@ public class ManualChangesUnitTest extends BuildDocumentIntegrationTest { ManualRecategorization imageRecategorizationRequest = ManualRecategorization.builder() .type("type") .requestDate(start.plusSeconds(5)) + .fileId(TEST_FILE_ID) + .user("user") .annotationId(annotationId) .legalBasis("") .build(); @@ -164,7 +169,7 @@ public class ManualChangesUnitTest extends BuildDocumentIntegrationTest { .get(0).getId(); // remove first - IdRemoval removal = IdRemoval.builder().requestDate(start).fileId(TEST_FILE_ID).annotationId(annotationId).build(); + IdRemoval removal = IdRemoval.builder().requestDate(start).fileId(TEST_FILE_ID).annotationId(annotationId).user("user").build(); entity.getManualOverwrite().addChange(removal); assertTrue(entity.ignored()); assertFalse(entity.applied()); @@ -175,6 +180,7 @@ public class ManualChangesUnitTest extends BuildDocumentIntegrationTest { .requestDate(start.plusSeconds(1)) .fileId(TEST_FILE_ID) .annotationId(annotationId) + .user("user") .legalBasis("coolio") .build(); entity.getManualOverwrite().addChange(forceRedaction); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/PrecursorEntityTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/PrecursorEntityTest.java index 94f0823f..b6a1efcb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/PrecursorEntityTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/manualchanges/PrecursorEntityTest.java @@ -84,7 +84,7 @@ public class PrecursorEntityTest extends BuildDocumentIntegrationTest { public void testFoundManualAddRedactionAndRemovedHasStateRemoved() { DocumentAndEntity context = createFoundManualRedaction(); - IdRemoval removal = IdRemoval.builder().requestDate(OffsetDateTime.now()).build(); + IdRemoval removal = IdRemoval.builder().annotationId("123").user("user").fileId(TEST_FILE_ID).requestDate(OffsetDateTime.now()).build(); context.entity().getManualOverwrite().addChange(removal); assertTrue(context.entity().removed()); } @@ -95,7 +95,7 @@ public class PrecursorEntityTest extends BuildDocumentIntegrationTest { public void testNotFoundManualAddRedactionAndRemovedHasStateRemoved() { DocumentAndEntity context = createNotFoundManualRedaction(); - IdRemoval removal = IdRemoval.builder().requestDate(OffsetDateTime.now()).build(); + IdRemoval removal = IdRemoval.builder().fileId(TEST_FILE_ID).user("user").annotationId("123").requestDate(OffsetDateTime.now()).build(); context.entity().getManualOverwrite().addChange(removal); assertTrue(context.entity().removed()); } @@ -108,8 +108,11 @@ public class PrecursorEntityTest extends BuildDocumentIntegrationTest { String value = "To: Syngenta Ltd. Jealott’s Hill"; String type = DICTIONARY_AUTHOR; ManualRedactionEntry manualRedactionEntry = ManualRedactionEntry.builder() + .annotationId("123") .type(type) .value(value) + .user("user") + .fileId(TEST_FILE_ID) .reason("reason") .legalBasis("n-a") .section("n-a") @@ -162,8 +165,11 @@ public class PrecursorEntityTest extends BuildDocumentIntegrationTest { ManualRedactionEntry manualRedactionEntry = ManualRedactionEntry.builder() .type("manual") + .annotationId("123") .value(tempEntity.getValue()) .reason("reason") + .user("user") + .fileId(TEST_FILE_ID) .legalBasis("n-a") .section(tempEntity.getDeepestFullyContainingNode().toString()) .rectangle(false) diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/service/document/UnprocessedChangesServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/service/document/UnprocessedChangesServiceTest.java index 3a87d2ad..d60b1c9f 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/service/document/UnprocessedChangesServiceTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/service/document/UnprocessedChangesServiceTest.java @@ -8,6 +8,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.time.OffsetDateTime; import java.util.List; import java.util.Optional; import java.util.Set; @@ -34,7 +35,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import com.iqser.red.commons.jackson.ObjectMapperFactory; import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry; @@ -480,26 +480,32 @@ public class UnprocessedChangesServiceTest extends AbstractRedactionIntegrationT private static ManualResizeRedaction prepareManualSizeRedaction(String id, List positions, String value) { - ManualResizeRedaction manualResizeRedaction = new ManualResizeRedaction(); - manualResizeRedaction.setAnnotationId(id); - manualResizeRedaction.setPositions(positions); - manualResizeRedaction.setUpdateDictionary(false); - manualResizeRedaction.setAddToAllDossiers(false); - manualResizeRedaction.setValue(value); - return manualResizeRedaction; + return ManualResizeRedaction.builder() + .annotationId(id) + .fileId("fileId") + .user("user") + .positions(positions) + .updateDictionary(false) + .addToAllDossiers(false) + .value(value) + .requestDate(OffsetDateTime.now()) + .build(); } private static ManualRedactionEntry prepareManualRedactionEntry(String id, List positions, String value) { - ManualRedactionEntry manualRedactionEntry = new ManualRedactionEntry(); - manualRedactionEntry.setAnnotationId(id); - manualRedactionEntry.setFileId("fileId"); - manualRedactionEntry.setType("CBI_author"); - manualRedactionEntry.setValue(value); - manualRedactionEntry.setReason("Manual Redaction"); - manualRedactionEntry.setPositions(positions); - return manualRedactionEntry; + return ManualRedactionEntry.builder() + .annotationId(id) + .fileId("fileId") + .user("user") + .type("CBI_author") + .value(value) + .reason("Manual Redaction") + .processedDate(OffsetDateTime.now()) + .requestDate(OffsetDateTime.now()) + .positions(positions) + .build(); } }