From bf5a2dd6f6abacdbf65205361859cc739d2fb9ba Mon Sep 17 00:00:00 2001 From: Maverick Studer Date: Fri, 6 Sep 2024 10:02:35 +0200 Subject: [PATCH] RED-9947: bulk-local redactions --- .../controller/ManualRedactionController.java | 28 ++++---- .../tests/EntityLogMongoServiceTest.java | 67 +++++++++---------- ...ntityLogEntryDocumentCustomRepository.java | 4 +- ...yLogEntryDocumentCustomRepositoryImpl.java | 13 +--- .../mongo/service/EntityLogMongoService.java | 14 ++-- 5 files changed, 55 insertions(+), 71 deletions(-) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java index 348ab2510..8ecf2fc4a 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java @@ -255,16 +255,16 @@ public class ManualRedactionController implements ManualRedactionResource { Set entryIds; if (!removeRedactionRequest.isRectangle()) { - entryIds = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(removeRedactionRequest.getValue(), - removeRedactionRequest.isCaseSensitive(), + entryIds = entityLogMongoService.findEntryIdsByValueWithFilters(removeRedactionRequest.getValue(), + removeRedactionRequest.isCaseSensitive(), + removeRedactionRequest.getOriginTypes(), + removeRedactionRequest.getOriginLegalBases(), + removeRedactionRequest.getPageNumbers()); + } else { + entryIds = entityLogMongoService.findEntryIdsByMatchingFullPositionWithFilters(removeRedactionRequest.getPosition().getRectangle(), removeRedactionRequest.getOriginTypes(), removeRedactionRequest.getOriginLegalBases(), removeRedactionRequest.getPageNumbers()); - } else { - entryIds = entityLogMongoService.findEntryIdsByMatchingFullPositionAndEngineManualWithFilters(removeRedactionRequest.getPosition().getRectangle(), - removeRedactionRequest.getOriginTypes(), - removeRedactionRequest.getOriginLegalBases(), - removeRedactionRequest.getPageNumbers()); } Set removeRedactionRequestModels = entryIds.stream() .map(entryId -> RemoveRedactionRequestModel.builder().annotationId(entryId).build()) @@ -349,16 +349,16 @@ public class ManualRedactionController implements ManualRedactionResource { Set entryIds; if (!recategorizationRequest.isRectangle()) { - entryIds = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(recategorizationRequest.getValue(), - recategorizationRequest.isCaseSensitive(), + entryIds = entityLogMongoService.findEntryIdsByValueWithFilters(recategorizationRequest.getValue(), + recategorizationRequest.isCaseSensitive(), + recategorizationRequest.getOriginTypes(), + recategorizationRequest.getOriginLegalBases(), + recategorizationRequest.getPageNumbers()); + } else { + entryIds = entityLogMongoService.findEntryIdsByMatchingFullPositionWithFilters(recategorizationRequest.getPosition().getRectangle(), recategorizationRequest.getOriginTypes(), recategorizationRequest.getOriginLegalBases(), recategorizationRequest.getPageNumbers()); - } else { - entryIds = entityLogMongoService.findEntryIdsByMatchingFullPositionAndEngineManualWithFilters(recategorizationRequest.getPosition().getRectangle(), - recategorizationRequest.getOriginTypes(), - recategorizationRequest.getOriginLegalBases(), - recategorizationRequest.getPageNumbers()); } Set recategorizationRequestModels = entryIds.stream() .map(entryId -> RecategorizationRequestModel.builder() diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMongoServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMongoServiceTest.java index 61b80ddc9..9bb506141 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMongoServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMongoServiceTest.java @@ -3,7 +3,6 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Optional; @@ -351,52 +350,52 @@ public class EntityLogMongoServiceTest extends AbstractPersistenceServerServiceT Set akessonSetByPositions = entityLogMongoService.findEntryIdsOfManualsWithPositionRectangle(akessonRectangle); assertEquals(akessonSetByPositions.size(), 3); - Set akessonSetFilterQuery = entityLogMongoService.findEntryIdsByMatchingFullPositionAndEngineManualWithFilters(akessonRectangle, - Collections.emptySet(), - Collections.emptySet(), - Collections.emptySet()); + Set akessonSetFilterQuery = entityLogMongoService.findEntryIdsByMatchingFullPositionWithFilters(akessonRectangle, + Collections.emptySet(), + Collections.emptySet(), + Collections.emptySet()); assertEquals(akessonSetFilterQuery.size(), 3); - Set akessonSetFilterQueryByPositions = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(akessonValue, - false, - Collections.emptySet(), - Collections.emptySet(), - Collections.emptySet()); + Set akessonSetFilterQueryByPositions = entityLogMongoService.findEntryIdsByValueWithFilters(akessonValue, + false, + Collections.emptySet(), + Collections.emptySet(), + Collections.emptySet()); assertEquals(akessonSetFilterQueryByPositions.size(), 3); - akessonSetFilterQuery = entityLogMongoService.findEntryIdsByMatchingFullPositionAndEngineManualWithFilters(akessonRectangle, - Collections.emptySet(), - Collections.emptySet(), - Set.of(1, 3)); + akessonSetFilterQuery = entityLogMongoService.findEntryIdsByMatchingFullPositionWithFilters(akessonRectangle, + Collections.emptySet(), + Collections.emptySet(), + Set.of(1, 3)); assertEquals(akessonSetFilterQuery.size(), 2); - akessonSetFilterQueryByPositions = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(akessonValue, - false, - Collections.emptySet(), - Collections.emptySet(), - Set.of(1, 3)); + akessonSetFilterQueryByPositions = entityLogMongoService.findEntryIdsByValueWithFilters(akessonValue, + false, + Collections.emptySet(), + Collections.emptySet(), + Set.of(1, 3)); assertEquals(akessonSetFilterQueryByPositions.size(), 2); String baldridgeValue = "Baldridge"; - Set baldridgeSet = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(baldridgeValue, - false, - Collections.emptySet(), - Collections.emptySet(), - Collections.emptySet()); + Set baldridgeSet = entityLogMongoService.findEntryIdsByValueWithFilters(baldridgeValue, + false, + Collections.emptySet(), + Collections.emptySet(), + Collections.emptySet()); assertEquals(baldridgeSet.size(), 4); - Set baldridgeSetWithTypeFilter = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(baldridgeValue, - false, - Set.of("CBI_author", "Test"), - Collections.emptySet(), - Collections.emptySet()); + Set baldridgeSetWithTypeFilter = entityLogMongoService.findEntryIdsByValueWithFilters(baldridgeValue, + false, + Set.of("CBI_author", "Test"), + Collections.emptySet(), + Collections.emptySet()); assertEquals(baldridgeSetWithTypeFilter.size(), 2); - Set baldridgeSetWithLegalBasesFilter = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(baldridgeValue, - false, - Set.of("CBI_author", "Test"), - Set.of("Test"), - Collections.emptySet()); + Set baldridgeSetWithLegalBasesFilter = entityLogMongoService.findEntryIdsByValueWithFilters(baldridgeValue, + false, + Set.of("CBI_author", "Test"), + Set.of("Test"), + Collections.emptySet()); assertEquals(baldridgeSetWithLegalBasesFilter.size(), 1); } diff --git a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/EntityLogEntryDocumentCustomRepository.java b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/EntityLogEntryDocumentCustomRepository.java index 1b9f4214c..1526055e0 100644 --- a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/EntityLogEntryDocumentCustomRepository.java +++ b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/EntityLogEntryDocumentCustomRepository.java @@ -5,9 +5,9 @@ import java.util.Set; public interface EntityLogEntryDocumentCustomRepository { - List findEntryIdsByValueAndEngineManualWithFilters(String value, boolean caseSensitive, Set originTypes, Set originLegalBases, Set pageNumbers); + List findEntryIdsByValueWithFilters(String value, boolean caseSensitive, Set originTypes, Set originLegalBases, Set pageNumbers); - List findEntryIdsByMatchingPositionAndEngineManualWithFilters(float[] rectangle, Set originTypes, Set originLegalBases, Set pageNumbers); + List findEntryIdsByMatchingPositionWithFilters(float[] rectangle, Set originTypes, Set originLegalBases, Set pageNumbers); } diff --git a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/EntityLogEntryDocumentCustomRepositoryImpl.java b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/EntityLogEntryDocumentCustomRepositoryImpl.java index 5256184ee..ef4dc6e2b 100644 --- a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/EntityLogEntryDocumentCustomRepositoryImpl.java +++ b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/EntityLogEntryDocumentCustomRepositoryImpl.java @@ -27,11 +27,7 @@ public class EntityLogEntryDocumentCustomRepositoryImpl implements EntityLogEntr @Override - public List findEntryIdsByValueAndEngineManualWithFilters(String value, - boolean caseSensitive, - Set originTypes, - Set originLegalBases, - Set pageNumbers) { + public List findEntryIdsByValueWithFilters(String value, boolean caseSensitive, Set originTypes, Set originLegalBases, Set pageNumbers) { Query query = new Query(); List criteriaList = new ArrayList<>(); @@ -52,10 +48,7 @@ public class EntityLogEntryDocumentCustomRepositoryImpl implements EntityLogEntr @Override - public List findEntryIdsByMatchingPositionAndEngineManualWithFilters(float[] rectangle, - Set originTypes, - Set originLegalBases, - Set pageNumbers) { + public List findEntryIdsByMatchingPositionWithFilters(float[] rectangle, Set originTypes, Set originLegalBases, Set pageNumbers) { Query query = new Query(); List criteriaList = new ArrayList<>(); @@ -74,8 +67,6 @@ public class EntityLogEntryDocumentCustomRepositoryImpl implements EntityLogEntr @NotNull private void addCommonCriteria(Set originTypes, Set originLegalBases, Set pageNumbers, List criteriaList) { - criteriaList.add(Criteria.where("engines").is("MANUAL")); - if (originTypes != null && !originTypes.isEmpty()) { criteriaList.add(Criteria.where("type").in(originTypes)); } diff --git a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/service/EntityLogMongoService.java b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/service/EntityLogMongoService.java index 6df71ccb9..5d758659b 100644 --- a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/service/EntityLogMongoService.java +++ b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/service/EntityLogMongoService.java @@ -350,21 +350,15 @@ public class EntityLogMongoService { } - public Set findEntryIdsByValueAndEngineManualWithFilters(String value, boolean caseSensitive, Set originTypes, Set originLegalBases, Set pageNumbers) { + public Set findEntryIdsByValueWithFilters(String value, boolean caseSensitive, Set originTypes, Set originLegalBases, Set pageNumbers) { - return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByValueAndEngineManualWithFilters(value, caseSensitive, originTypes, originLegalBases, pageNumbers)); + return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByValueWithFilters(value, caseSensitive, originTypes, originLegalBases, pageNumbers)); } - public Set findEntryIdsByMatchingFullPositionAndEngineManualWithFilters(float[] rectangle, - Set originTypes, - Set originLegalBases, - Set pageNumbers) { + public Set findEntryIdsByMatchingFullPositionWithFilters(float[] rectangle, Set originTypes, Set originLegalBases, Set pageNumbers) { - return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByMatchingPositionAndEngineManualWithFilters(rectangle, - originTypes, - originLegalBases, - pageNumbers)); + return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByMatchingPositionWithFilters(rectangle, originTypes, originLegalBases, pageNumbers)); } }