RED-9947: case sensitivity can now be set as param
This commit is contained in:
parent
11088ddfef
commit
52bd1dea3c
@ -28,6 +28,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.manualr
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.PendingEntryFactory;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.CommentResponse;
|
||||
@ -197,7 +198,8 @@ public class ManualRedactionController implements ManualRedactionResource {
|
||||
verifyAccess(dossierId, fileId);
|
||||
|
||||
// check if type exists before sending the request to redaction service
|
||||
dictionaryPersistenceService.getType(addRedactionRequest.getType());
|
||||
var dossier = dossierManagementService.getDossierById(dossierId, false, false);
|
||||
dictionaryPersistenceService.getType(TypeIdUtils.toTypeId(addRedactionRequest.getType(), dossier.getDossierTemplateId()));
|
||||
|
||||
fileStatusService.setStatusBulkLocalRedactionsProcessing(dossierId, fileId, addRedactionRequest);
|
||||
|
||||
@ -254,6 +256,7 @@ public class ManualRedactionController implements ManualRedactionResource {
|
||||
Set<String> entryIds;
|
||||
if (!removeRedactionRequest.isRectangle()) {
|
||||
entryIds = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(removeRedactionRequest.getValue(),
|
||||
removeRedactionRequest.isCaseSensitive(),
|
||||
removeRedactionRequest.getOriginTypes(),
|
||||
removeRedactionRequest.getOriginLegalBases(),
|
||||
removeRedactionRequest.getPageNumbers());
|
||||
@ -347,6 +350,7 @@ public class ManualRedactionController implements ManualRedactionResource {
|
||||
Set<String> entryIds;
|
||||
if (!recategorizationRequest.isRectangle()) {
|
||||
entryIds = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(recategorizationRequest.getValue(),
|
||||
recategorizationRequest.isCaseSensitive(),
|
||||
recategorizationRequest.getOriginTypes(),
|
||||
recategorizationRequest.getOriginLegalBases(),
|
||||
recategorizationRequest.getPageNumbers());
|
||||
|
||||
@ -1024,6 +1024,7 @@ public class FileStatusService {
|
||||
fileStatusPersistenceService.updateProcessingStatus(fileId, ProcessingStatus.BULK_LOCAL_REDACTIONS_PROCESSING);
|
||||
BulkLocalRequest bulkLocalRequest = BulkLocalRequest.builder()
|
||||
.searchTerm(addRedactionBulkLocalRequestModel.getValue())
|
||||
.caseSensitive(addRedactionBulkLocalRequestModel.isCaseSensitive())
|
||||
.type(addRedactionBulkLocalRequestModel.getType())
|
||||
.reason(addRedactionBulkLocalRequestModel.getReason())
|
||||
.legalBasis(addRedactionBulkLocalRequestModel.getLegalBasis())
|
||||
|
||||
@ -358,6 +358,7 @@ public class EntityLogMongoServiceTest extends AbstractPersistenceServerServiceT
|
||||
assertEquals(akessonSetFilterQuery.size(), 3);
|
||||
|
||||
Set<String> akessonSetFilterQueryByPositions = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(akessonValue,
|
||||
false,
|
||||
Collections.emptySet(),
|
||||
Collections.emptySet(),
|
||||
Collections.emptySet());
|
||||
@ -370,6 +371,7 @@ public class EntityLogMongoServiceTest extends AbstractPersistenceServerServiceT
|
||||
assertEquals(akessonSetFilterQuery.size(), 2);
|
||||
|
||||
akessonSetFilterQueryByPositions = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(akessonValue,
|
||||
false,
|
||||
Collections.emptySet(),
|
||||
Collections.emptySet(),
|
||||
Set.of(1, 3));
|
||||
@ -377,18 +379,21 @@ public class EntityLogMongoServiceTest extends AbstractPersistenceServerServiceT
|
||||
|
||||
String baldridgeValue = "Baldridge";
|
||||
Set<String> baldridgeSet = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(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());
|
||||
assertEquals(baldridgeSetWithTypeFilter.size(), 2);
|
||||
|
||||
Set<String> baldridgeSetWithLegalBasesFilter = entityLogMongoService.findEntryIdsByValueAndEngineManualWithFilters(baldridgeValue,
|
||||
false,
|
||||
Set.of("CBI_author", "Test"),
|
||||
Set.of("Test"),
|
||||
Collections.emptySet());
|
||||
|
||||
@ -18,6 +18,9 @@ public class BulkLocalRequest {
|
||||
@NonNull
|
||||
private String searchTerm;
|
||||
|
||||
@Builder.Default
|
||||
private boolean caseSensitive = true;
|
||||
|
||||
@NonNull
|
||||
private String type;
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@ -26,6 +25,9 @@ public class AddRedactionBulkLocalRequestModel {
|
||||
@NonNull
|
||||
private String value;
|
||||
|
||||
@Builder.Default
|
||||
private boolean caseSensitive = true;
|
||||
|
||||
@NonNull
|
||||
private String reason;
|
||||
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
package com.iqser.red.service.persistence.service.v1.api.shared.model.manual;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.NonNull;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ForceRedactionBulkLocalRequestModel {
|
||||
|
||||
@NonNull
|
||||
private String annotationId;
|
||||
|
||||
@NonNull
|
||||
private String value;
|
||||
|
||||
private String legalBasis;
|
||||
|
||||
private boolean rectangle;
|
||||
|
||||
private Position position;
|
||||
|
||||
}
|
||||
@ -19,6 +19,9 @@ public class RecategorizationBulkLocalRequestModel {
|
||||
|
||||
private String value;
|
||||
|
||||
@Builder.Default
|
||||
private boolean caseSensitive = true;
|
||||
|
||||
private String type;
|
||||
private String legalBasis;
|
||||
private String section;
|
||||
|
||||
@ -19,6 +19,9 @@ public class RemoveRedactionBulkLocalRequestModel {
|
||||
|
||||
private String value;
|
||||
|
||||
@Builder.Default
|
||||
private boolean caseSensitive = true;
|
||||
|
||||
private boolean rectangle;
|
||||
|
||||
private Position position;
|
||||
|
||||
@ -5,7 +5,7 @@ import java.util.Set;
|
||||
|
||||
public interface EntityLogEntryDocumentCustomRepository {
|
||||
|
||||
List<String> findEntryIdsByValueAndEngineManualWithFilters(String value, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers);
|
||||
List<String> findEntryIdsByValueAndEngineManualWithFilters(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);
|
||||
|
||||
@ -3,6 +3,7 @@ package com.iqser.red.service.persistence.service.v1.api.shared.mongo.repository
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
@ -26,12 +27,20 @@ public class EntityLogEntryDocumentCustomRepositoryImpl implements EntityLogEntr
|
||||
|
||||
|
||||
@Override
|
||||
public List<String> findEntryIdsByValueAndEngineManualWithFilters(String value, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers) {
|
||||
public List<String> findEntryIdsByValueAndEngineManualWithFilters(String value,
|
||||
boolean caseSensitive,
|
||||
Set<String> originTypes,
|
||||
Set<String> originLegalBases,
|
||||
Set<Integer> pageNumbers) {
|
||||
|
||||
Query query = new Query();
|
||||
List<Criteria> criteriaList = new ArrayList<>();
|
||||
|
||||
criteriaList.add(Criteria.where("value").is(value));
|
||||
if (caseSensitive) {
|
||||
criteriaList.add(Criteria.where("value").is(value));
|
||||
} else {
|
||||
criteriaList.add(Criteria.where("value").regex(Pattern.compile(Pattern.quote(value), Pattern.CASE_INSENSITIVE)));
|
||||
}
|
||||
|
||||
addCommonCriteria(originTypes, originLegalBases, pageNumbers, criteriaList);
|
||||
|
||||
|
||||
@ -350,9 +350,9 @@ public class EntityLogMongoService {
|
||||
}
|
||||
|
||||
|
||||
public Set<String> findEntryIdsByValueAndEngineManualWithFilters(String value, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers) {
|
||||
public Set<String> findEntryIdsByValueAndEngineManualWithFilters(String value, boolean caseSensitive, Set<String> originTypes, Set<String> originLegalBases, Set<Integer> pageNumbers) {
|
||||
|
||||
return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByValueAndEngineManualWithFilters(value, originTypes, originLegalBases, pageNumbers));
|
||||
return new HashSet<>(entityLogEntryDocumentCustomRepository.findEntryIdsByValueAndEngineManualWithFilters(value, caseSensitive, originTypes, originLegalBases, pageNumbers));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user