RED-9947: bulk-local redactions

This commit is contained in:
Maverick Studer 2024-09-06 10:02:35 +02:00
parent d7694b37a2
commit bf5a2dd6f6
5 changed files with 55 additions and 71 deletions

View File

@ -255,16 +255,16 @@ public class ManualRedactionController implements ManualRedactionResource {
Set<String> 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<RemoveRedactionRequestModel> removeRedactionRequestModels = entryIds.stream()
.map(entryId -> RemoveRedactionRequestModel.builder().annotationId(entryId).build())
@ -349,16 +349,16 @@ public class ManualRedactionController implements ManualRedactionResource {
Set<String> 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<RecategorizationRequestModel> recategorizationRequestModels = entryIds.stream()
.map(entryId -> RecategorizationRequestModel.builder()

View File

@ -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<String> akessonSetByPositions = entityLogMongoService.findEntryIdsOfManualsWithPositionRectangle(akessonRectangle);
assertEquals(akessonSetByPositions.size(), 3);
Set<String> akessonSetFilterQuery = entityLogMongoService.findEntryIdsByMatchingFullPositionAndEngineManualWithFilters(akessonRectangle,
Collections.emptySet(),
Collections.emptySet(),
Collections.emptySet());
Set<String> akessonSetFilterQuery = entityLogMongoService.findEntryIdsByMatchingFullPositionWithFilters(akessonRectangle,
Collections.emptySet(),
Collections.emptySet(),
Collections.emptySet());
assertEquals(akessonSetFilterQuery.size(), 3);
Set<String> akessonSetFilterQueryByPositions = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(akessonValue,
false,
Collections.emptySet(),
Collections.emptySet(),
Collections.emptySet());
Set<String> 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<String> baldridgeSet = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(baldridgeValue,
false,
Collections.emptySet(),
Collections.emptySet(),
Collections.emptySet());
Set<String> baldridgeSet = entityLogMongoService.findEntryIdsByValueWithFilters(baldridgeValue,
false,
Collections.emptySet(),
Collections.emptySet(),
Collections.emptySet());
assertEquals(baldridgeSet.size(), 4);
Set<String> baldridgeSetWithTypeFilter = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(baldridgeValue,
false,
Set.of("CBI_author", "Test"),
Collections.emptySet(),
Collections.emptySet());
Set<String> baldridgeSetWithTypeFilter = entityLogMongoService.findEntryIdsByValueWithFilters(baldridgeValue,
false,
Set.of("CBI_author", "Test"),
Collections.emptySet(),
Collections.emptySet());
assertEquals(baldridgeSetWithTypeFilter.size(), 2);
Set<String> baldridgeSetWithLegalBasesFilter = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(baldridgeValue,
false,
Set.of("CBI_author", "Test"),
Set.of("Test"),
Collections.emptySet());
Set<String> baldridgeSetWithLegalBasesFilter = entityLogMongoService.findEntryIdsByValueWithFilters(baldridgeValue,
false,
Set.of("CBI_author", "Test"),
Set.of("Test"),
Collections.emptySet());
assertEquals(baldridgeSetWithLegalBasesFilter.size(), 1);
}

View File

@ -5,9 +5,9 @@ import java.util.Set;
public interface EntityLogEntryDocumentCustomRepository {
List<String> findEntryIdsByValueAndEngineManualWithFilters(String value, boolean caseSensitive, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers);
List<String> findEntryIdsByValueWithFilters(String value, boolean caseSensitive, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers);
List<String> findEntryIdsByMatchingPositionAndEngineManualWithFilters(float[] rectangle, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers);
List<String> findEntryIdsByMatchingPositionWithFilters(float[] rectangle, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers);
}

View File

@ -27,11 +27,7 @@ public class EntityLogEntryDocumentCustomRepositoryImpl implements EntityLogEntr
@Override
public List<String> findEntryIdsByValueAndEngineManualWithFilters(String value,
boolean caseSensitive,
Set<String> originTypes,
Set<String> originLegalBases,
Set<Integer> pageNumbers) {
public List<String> findEntryIdsByValueWithFilters(String value, boolean caseSensitive, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers) {
Query query = new Query();
List<Criteria> criteriaList = new ArrayList<>();
@ -52,10 +48,7 @@ public class EntityLogEntryDocumentCustomRepositoryImpl implements EntityLogEntr
@Override
public List<String> findEntryIdsByMatchingPositionAndEngineManualWithFilters(float[] rectangle,
Set<String> originTypes,
Set<String> originLegalBases,
Set<Integer> pageNumbers) {
public List<String> findEntryIdsByMatchingPositionWithFilters(float[] rectangle, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers) {
Query query = new Query();
List<Criteria> criteriaList = new ArrayList<>();
@ -74,8 +67,6 @@ public class EntityLogEntryDocumentCustomRepositoryImpl implements EntityLogEntr
@NotNull
private void addCommonCriteria(Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers, List<Criteria> criteriaList) {
criteriaList.add(Criteria.where("engines").is("MANUAL"));
if (originTypes != null && !originTypes.isEmpty()) {
criteriaList.add(Criteria.where("type").in(originTypes));
}

View File

@ -350,21 +350,15 @@ public class EntityLogMongoService {
}
public Set<String> findEntryIdsByValueAndEngineManualWithFilters(String value, boolean caseSensitive, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers) {
public Set<String> findEntryIdsByValueWithFilters(String value, boolean caseSensitive, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers) {
return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByValueAndEngineManualWithFilters(value, caseSensitive, originTypes, originLegalBases, pageNumbers));
return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByValueWithFilters(value, caseSensitive, originTypes, originLegalBases, pageNumbers));
}
public Set<String> findEntryIdsByMatchingFullPositionAndEngineManualWithFilters(float[] rectangle,
Set<String> originTypes,
Set<String> originLegalBases,
Set<Integer> pageNumbers) {
public Set<String> findEntryIdsByMatchingFullPositionWithFilters(float[] rectangle, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers) {
return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByMatchingPositionAndEngineManualWithFilters(rectangle,
originTypes,
originLegalBases,
pageNumbers));
return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByMatchingPositionWithFilters(rectangle, originTypes, originLegalBases, pageNumbers));
}
}