From ca18b9226e87f4604315cf2c717c920ac67cc9ca Mon Sep 17 00:00:00 2001 From: Philipp Schramm Date: Thu, 20 Jan 2022 15:25:19 +0100 Subject: [PATCH] RED-3239 Extended search with dossier status --- .../search/v1/model/SearchRequest.java | 1 + .../search-service-server-v1/pom.xml | 2 +- .../v1/server/client/DossierClient.java | 10 + .../server/controller/SearchController.java | 1 + .../search/v1/server/model/IndexDocument.java | 1 + .../v1/server/model/IndexDocumentUpdate.java | 1 + .../server/queue/IndexingMessageReceiver.java | 7 +- .../server/service/DocumentIndexService.java | 9 +- .../server/service/DocumentUpdateService.java | 10 +- .../v1/server/service/SearchService.java | 40 +++- .../src/main/resources/index/mapping.json | 3 + ...{IndexCreatorTest.java => SearchTest.java} | 192 ++++++++++++------ 12 files changed, 199 insertions(+), 78 deletions(-) create mode 100644 search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/client/DossierClient.java rename search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/{IndexCreatorTest.java => SearchTest.java} (70%) diff --git a/search-service-v1/search-service-api-v1/src/main/java/com/iqser/red/service/search/v1/model/SearchRequest.java b/search-service-v1/search-service-api-v1/src/main/java/com/iqser/red/service/search/v1/model/SearchRequest.java index 5068aeb..55fe58c 100644 --- a/search-service-v1/search-service-api-v1/src/main/java/com/iqser/red/service/search/v1/model/SearchRequest.java +++ b/search-service-v1/search-service-api-v1/src/main/java/com/iqser/red/service/search/v1/model/SearchRequest.java @@ -19,6 +19,7 @@ public class SearchRequest { private List dossierTemplateIds; private String fileId; private String assignee; + private List dossierStatus; private String workflowStatus; private Map fileAttributes; private int page; diff --git a/search-service-v1/search-service-server-v1/pom.xml b/search-service-v1/search-service-server-v1/pom.xml index c9609e6..c884ee9 100644 --- a/search-service-v1/search-service-server-v1/pom.xml +++ b/search-service-v1/search-service-server-v1/pom.xml @@ -24,7 +24,7 @@ com.iqser.red.service persistence-service-api-v1 - 0.142.0 + 1.16.0 diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/client/DossierClient.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/client/DossierClient.java new file mode 100644 index 0000000..2cf757c --- /dev/null +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/client/DossierClient.java @@ -0,0 +1,10 @@ +package com.iqser.red.service.search.v1.server.client; + +import com.iqser.red.service.persistence.service.v1.api.resources.DossierResource; +import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource; +import org.springframework.cloud.openfeign.FeignClient; + +@FeignClient(name = "DossierResource", url = "${persistence-service.url}") +public interface DossierClient extends DossierResource { + +} diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/controller/SearchController.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/controller/SearchController.java index 78d31d7..632fee8 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/controller/SearchController.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/controller/SearchController.java @@ -23,6 +23,7 @@ public class SearchController implements SearchResource { searchRequest.getDossierIds(), searchRequest.getFileId(), searchRequest.getAssignee(), + searchRequest.getDossierStatus(), searchRequest.getWorkflowStatus(), searchRequest.getFileAttributes(), searchRequest.getPage(), diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/IndexDocument.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/IndexDocument.java index a2857bd..3a67e7f 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/IndexDocument.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/IndexDocument.java @@ -20,6 +20,7 @@ public class IndexDocument implements Serializable { private String filename; private OffsetDateTime date; private String assignee; + private String dossierStatus; private String workflowStatus; @Builder.Default diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/IndexDocumentUpdate.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/IndexDocumentUpdate.java index 6e1c8f6..0415331 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/IndexDocumentUpdate.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/model/IndexDocumentUpdate.java @@ -14,6 +14,7 @@ import lombok.NoArgsConstructor; public class IndexDocumentUpdate { private String assignee; + private String dossierStatus; private String workflowStatus; private List fileAttributes; diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java index ef8235e..a10aab3 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/queue/IndexingMessageReceiver.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.search.v1.model.IndexMessage; import com.iqser.red.service.search.v1.model.IndexMessageType; +import com.iqser.red.service.search.v1.server.client.DossierClient; import com.iqser.red.service.search.v1.server.client.FileStatusClient; import com.iqser.red.service.search.v1.server.client.FileStatusProcessingUpdateClient; import com.iqser.red.service.search.v1.server.model.Text; @@ -28,6 +29,7 @@ public class IndexingMessageReceiver { private final TextStorageService textStorageService; private final DocumentIndexService documentIndexService; private final FileStatusClient fileStatusClient; + private final DossierClient dossierClient; private final FileStatusProcessingUpdateClient fileStatusProcessingUpdateClient; private final DocumentDeleteService documentDeleteService; private final DocumentUpdateService documentUpdateService; @@ -40,15 +42,16 @@ public class IndexingMessageReceiver { var indexRequest = objectMapper.readValue(in, IndexMessage.class); log.info("Processing indexing request: {}", indexRequest); var fileStatus = fileStatusClient.getFileStatus(indexRequest.getDossierId(), indexRequest.getFileId()); + var dossier = dossierClient.getDossierById(indexRequest.getDossierId(), true, true); if (IndexMessageType.INSERT.equals(indexRequest.getMessageType())) { fileStatusProcessingUpdateClient.indexing(indexRequest.getDossierId(), indexRequest.getFileId()); Text text = textStorageService.getText(indexRequest.getDossierId(), indexRequest.getFileId()); - documentIndexService.indexDocument(indexRequest.getDossierTemplateId(), indexRequest.getDossierId(), indexRequest.getFileId(), fileStatus.getFilename(), text, fileStatus.getAssignee(), fileStatus.getWorkflowStatus(), fileStatus.getFileAttributes()); + documentIndexService.indexDocument(indexRequest.getDossierTemplateId(), indexRequest.getDossierId(), indexRequest.getFileId(), fileStatus.getFilename(), text, fileStatus.getAssignee(), dossier.getStatus(), fileStatus.getWorkflowStatus(), fileStatus.getFileAttributes()); fileStatusProcessingUpdateClient.indexingSuccessful(indexRequest.getDossierId(), indexRequest.getFileId()); log.info("Successfully indexed {}", indexRequest); } else if (IndexMessageType.UPDATE.equals(indexRequest.getMessageType())) { - documentUpdateService.updateDocument(indexRequest.getFileId(), fileStatus.getAssignee(), fileStatus.getWorkflowStatus().name(), fileStatus.getFileAttributes()); + documentUpdateService.updateDocument(indexRequest.getFileId(), fileStatus.getAssignee(), dossier.getStatus(), fileStatus.getWorkflowStatus().name(), fileStatus.getFileAttributes()); log.info("Successfully updated {}", indexRequest); } } diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/DocumentIndexService.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/DocumentIndexService.java index 9eb3c48..ed5e66a 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/DocumentIndexService.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/DocumentIndexService.java @@ -2,6 +2,8 @@ package com.iqser.red.service.search.v1.server.service; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.search.v1.server.client.ElasticsearchClient; import com.iqser.red.service.search.v1.server.exception.IndexException; @@ -33,11 +35,11 @@ public class DocumentIndexService { private final ObjectMapper objectMapper; - public void indexDocument(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, WorkflowStatus workflowStatus, Map fileAttributes) { + public void indexDocument(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, DossierStatus dossierStatus, WorkflowStatus workflowStatus, Map fileAttributes) { IndexRequest indexRequest = new IndexRequest(INDEX_NAME).id(fileId); indexRequest.setRefreshPolicy(settings.getRefreshPolicy()); - indexRequest.source(toJson(convert(dossierTemplateId, dossierId, fileId, filename, text, assignee, workflowStatus, fileAttributes)), XContentType.JSON); + indexRequest.source(toJson(convert(dossierTemplateId, dossierId, fileId, filename, text, assignee, dossierStatus, workflowStatus, fileAttributes)), XContentType.JSON); try { client.index(indexRequest, RequestOptions.DEFAULT); @@ -57,7 +59,7 @@ public class DocumentIndexService { } - private IndexDocument convert(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, WorkflowStatus workflowStatus, Map fileAttributes) { + private IndexDocument convert(String dossierTemplateId, String dossierId, String fileId, String filename, Text text, String assignee, DossierStatus dossierStatus, WorkflowStatus workflowStatus, Map fileAttributes) { return IndexDocument.builder() .dossierTemplateId(dossierTemplateId) @@ -68,6 +70,7 @@ public class DocumentIndexService { .date(OffsetDateTime.now()) .fileAttributes(convertFileAttributes(fileAttributes)) .assignee(assignee) + .dossierStatus(dossierStatus.name()) .workflowStatus(workflowStatus.name()) .build(); } diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/DocumentUpdateService.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/DocumentUpdateService.java index 4f73de7..bbda6a0 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/DocumentUpdateService.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/DocumentUpdateService.java @@ -1,6 +1,7 @@ package com.iqser.red.service.search.v1.server.service; import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus; import com.iqser.red.service.search.v1.server.client.ElasticsearchClient; import com.iqser.red.service.search.v1.server.model.IndexDocumentUpdate; import com.iqser.red.service.search.v1.server.model.IndexFileAttribute; @@ -26,9 +27,14 @@ public class DocumentUpdateService { private final ElasticsearchClient client; @SneakyThrows - public void updateDocument(String fileId, String assignee, String workflowStatus, Map fileAttributes) { + public void updateDocument(String fileId, String assignee, DossierStatus dossierStatus, String workflowStatus, Map fileAttributes) { - var indexUpdateRequest = IndexDocumentUpdate.builder().assignee(assignee).workflowStatus(workflowStatus).fileAttributes(convertFileAttributes(fileAttributes)).build(); + var indexUpdateRequest = IndexDocumentUpdate.builder() + .assignee(assignee) + .dossierStatus(dossierStatus.name()) + .workflowStatus(workflowStatus) + .fileAttributes(convertFileAttributes(fileAttributes)) + .build(); UpdateRequest request = new UpdateRequest(INDEX_NAME, fileId); request.doc(objectMapper.writeValueAsString(indexUpdateRequest), XContentType.JSON); diff --git a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/SearchService.java b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/SearchService.java index 7764181..511a0fd 100644 --- a/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/SearchService.java +++ b/search-service-v1/search-service-server-v1/src/main/java/com/iqser/red/service/search/v1/server/service/SearchService.java @@ -1,5 +1,6 @@ package com.iqser.red.service.search.v1.server.service; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus; import com.iqser.red.service.search.v1.model.MatchedDocument; import com.iqser.red.service.search.v1.model.MatchedSection; import com.iqser.red.service.search.v1.model.SearchResult; @@ -45,6 +46,7 @@ public class SearchService { List dossierIds, String fileId, String assignee, + List dossierStatus, String workflowStatus, Map fileAttributes, int page, @@ -54,11 +56,11 @@ public class SearchService { Query query = QueryStringConverter.convert(queryString); - SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(convertQuery(query, dossierTemplateIds, dossierIds, fileId, assignee, workflowStatus, fileAttributes, returnSections)) + SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(convertQuery(query, dossierTemplateIds, dossierIds, fileId, assignee, getDossierStatusOrDefault(dossierStatus), workflowStatus, fileAttributes, returnSections)) .from(getPageOrDefault(page) * getPageSizeOrDefault(pageSize)) .size(getPageSizeOrDefault(pageSize)) .fetchSource(new String[]{"dossierId", "fileId"}, new String[]{"sections"}) - .highlighter(new HighlightBuilder().field("sections.text").field("filename").field("fileAttributes.value").highlighterType("fvh"))// + .highlighter(new HighlightBuilder().field("sections.text").field("filename").field("fileAttributes.value").highlighterType("fvh")) .trackScores(true); SearchRequest request = new SearchRequest(INDEX_NAME).source(searchSourceBuilder); @@ -79,7 +81,17 @@ public class SearchService { } - private QueryBuilder convertQuery(Query query, List dossierTemplateIds, List dossierIds, String fileId, String assignee, String workflowStatus, Map fileAttributes, boolean returnSections) { + private QueryBuilder convertQuery( + Query query, + List dossierTemplateIds, + List dossierIds, + String fileId, + String assignee, + List dossierStatus, + String workflowStatus, + Map fileAttributes, + boolean returnSections + ) { BoolQueryBuilder entireQuery = QueryBuilders.boolQuery(); BoolQueryBuilder sectionsQueries = QueryBuilders.boolQuery(); @@ -151,6 +163,19 @@ public class SearchService { filterQuery.must(QueryBuilders.matchQuery("assignee", assignee)); } + if (dossierStatus != null && !dossierStatus.isEmpty()) { + + var dossierStatusQueryBuilder = QueryBuilders.boolQuery(); + + for (String status : dossierStatus) { + if (StringUtils.isNotEmpty(status)) { + dossierStatusQueryBuilder = dossierStatusQueryBuilder.should(QueryBuilders.matchQuery("dossierStatus", status)); + } + } + + filterQuery.must(dossierStatusQueryBuilder); + } + if (StringUtils.isNotEmpty(workflowStatus)) { filterQuery.must(QueryBuilders.matchQuery("workflowStatus", workflowStatus)); } @@ -251,4 +276,13 @@ public class SearchService { return page; } + + private List getDossierStatusOrDefault(List dossierStatus) { + + if (dossierStatus == null || dossierStatus.isEmpty()) { + return List.of(DossierStatus.ACTIVE.name()); + } + return dossierStatus; + } + } diff --git a/search-service-v1/search-service-server-v1/src/main/resources/index/mapping.json b/search-service-v1/search-service-server-v1/src/main/resources/index/mapping.json index dd90468..e61333e 100644 --- a/search-service-v1/search-service-server-v1/src/main/resources/index/mapping.json +++ b/search-service-v1/search-service-server-v1/src/main/resources/index/mapping.json @@ -22,6 +22,9 @@ "workflowStatus": { "type": "keyword" }, + "dossierStatus": { + "type": "keyword" + }, "fileAttributes" : { "type": "nested", "include_in_parent": true, diff --git a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/IndexCreatorTest.java b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/SearchTest.java similarity index 70% rename from search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/IndexCreatorTest.java rename to search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/SearchTest.java index 9cb7c5e..476b6ea 100644 --- a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/IndexCreatorTest.java +++ b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/SearchTest.java @@ -1,14 +1,15 @@ package com.iqser.red.service.search.v1.server.service; import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.search.v1.model.MatchedDocument; import com.iqser.red.service.search.v1.model.SearchResult; +import com.iqser.red.service.search.v1.server.client.DossierClient; import com.iqser.red.service.search.v1.server.client.FileStatusClient; import com.iqser.red.service.search.v1.server.client.FileStatusProcessingUpdateClient; import com.iqser.red.service.search.v1.server.model.Text; import lombok.SneakyThrows; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -20,13 +21,14 @@ import org.testcontainers.shaded.org.apache.commons.lang.StringUtils; import java.io.IOException; import java.util.Arrays; +import java.util.List; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, properties = {AbstractElasticsearchIntegrationTest.WAIT_FOR_WRITE_REQUESTS}) -public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { +public class SearchTest extends AbstractElasticsearchIntegrationTest { @Autowired private ObjectMapper objectMapper; @@ -49,6 +51,9 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { @MockBean private FileStatusProcessingUpdateClient fileStatusProcessingUpdateClient; + @MockBean + private DossierClient dossierClient; + private final long UPDATE_TIMER = 1500; @@ -59,11 +64,11 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { ClassPathResource textResource = new ClassPathResource("files/Text2.json"); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); - documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); // Act & Assert 1 - SearchResult result = searchService.search("F1Value", null, null, null, null, null, null, 0, 10, false); + SearchResult result = searchService.search("F1Value", null, null, null, null, null, null, null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); } @@ -79,30 +84,30 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { ClassPathResource textResource = new ClassPathResource("files/Text2.json"); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); - documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); // Act & Assert 1 - SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.APPROVED.name(), null, 0, 10, false); + SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(0); // Act & Assert 2 - result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.NEW.name(), null, -1, 0, false); + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, -1, 0, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); // Act & Assert 3 - documentUpdateService.updateDocument("fileId1", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value")); + documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value")); Thread.sleep(UPDATE_TIMER); - result = searchService.search("S-Metolachlor", null, null, null, "UserId2", WorkflowStatus.NEW.name(), Map.of("F2Key", "F2Value"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, "UserId2", List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), Map.of("F2Key", "F2Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); // Act & Assert 4 - documentUpdateService.updateDocument("fileId2", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value")); + documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value")); Thread.sleep(UPDATE_TIMER); - result = searchService.search("S-Metolachlor", null, null, null, "UserId2", WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, "UserId2", List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), Map.of("F2Key", "F2Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); @@ -118,18 +123,18 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { ClassPathResource textResource = new ClassPathResource("files/Text2.json"); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); - documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act & Assert 1 - SearchResult result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, 0, 10, false); + SearchResult result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); // Act & Assert 2 - documentUpdateService.updateDocument("fileId1", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); + documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); Thread.sleep(UPDATE_TIMER); - result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, "UserId2", null, null, null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); @@ -146,41 +151,94 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { ClassPathResource textResource = new ClassPathResource("files/Text2.json"); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); - documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); // Act & Assert 1 - SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.APPROVED.name(), null, 0, 10, false); + SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(0); // Act & Assert 2 - result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.NEW.name(), null, 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); // Act & Assert 3 - documentUpdateService.updateDocument("fileId1", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); + documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); Thread.sleep(UPDATE_TIMER); - result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.APPROVED.name(), null, 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); // Act & Assert 4 - result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.NEW.name(), null, 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.NEW.name(), null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); // Act & Assert 5 - documentUpdateService.updateDocument("fileId2", "UserId2", WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); + documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.ACTIVE, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); Thread.sleep(UPDATE_TIMER); - result = searchService.search("S-Metolachlor", null, null, null, null, WorkflowStatus.APPROVED.name(), null, 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), WorkflowStatus.APPROVED.name(), null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(2); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); } + /* + * Index two documents, update one and filter by dossierStatus + */ + @Test + @SneakyThrows + public void testFilterByDossierStatus() { + // Arrange + ClassPathResource textResource = new ClassPathResource("files/Text2.json"); + Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); + + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); + + // Act & Assert 1 + SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.DELETED.name()), null, null, 0, 10, false); + assertThat(result.getMatchedDocuments().size()).isEqualTo(0); + + // Act & Assert 2 + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), null, null, 0, 10, false); + assertThat(result.getMatchedDocuments().size()).isEqualTo(2); + assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); + assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); + + // Act & Assert 2 + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name(), DossierStatus.ARCHIVED.name()), null, null, 0, 10, false); + assertThat(result.getMatchedDocuments().size()).isEqualTo(2); + assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); + assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); + + // Act & Assert 3 + documentUpdateService.updateDocument("fileId1", "UserId2", DossierStatus.ARCHIVED, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); + Thread.sleep(UPDATE_TIMER); + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name(), DossierStatus.DELETED.name()), null, null, 0, 10, false); + assertThat(result.getMatchedDocuments().size()).isEqualTo(1); + assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); + + // Act & Assert 4 + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ARCHIVED.name()), null, null, 0, 10, false); + assertThat(result.getMatchedDocuments().size()).isEqualTo(1); + assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); + + // Act & Assert 5 + documentUpdateService.updateDocument("fileId2", "UserId2", DossierStatus.DELETED, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); + Thread.sleep(UPDATE_TIMER); + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ACTIVE.name()), null, null, 0, 10, false); + assertThat(result.getMatchedDocuments().size()).isEqualTo(0); + + // Act & Assert 6 + result = searchService.search("S-Metolachlor", null, null, null, null, List.of(DossierStatus.ARCHIVED.name(), DossierStatus.DELETED.name()), null, null, 0, 10, false); + assertThat(result.getMatchedDocuments().size()).isEqualTo(2); + } + + /* * Index two documents, update one and filter by file attributes */ @@ -191,53 +249,53 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { ClassPathResource textResource = new ClassPathResource("files/Text2.json"); Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); - documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-1.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06-2.pdf", text, "UserId2", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F2Key", "F2Value")); // Act & Assert 1 - SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); + SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); // Act & Assert 2 - result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F2Key", "F2Value"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F2Key", "F2Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId2"); // Act & Assert 3 - result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F2Key", "does-not-exist"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F2Key", "does-not-exist"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(0); // Act & Assert 4 - result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("Key-does-not-exist", "F1Value"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("Key-does-not-exist", "F1Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(0); // Act & Assert 5 - result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(0); // Act & Assert 6 - documentUpdateService.updateDocument("fileId1", "UserId", WorkflowStatus.NEW.name(), Map.of("F1Key", "F1ValueNEW")); + documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1ValueNEW")); Thread.sleep(UPDATE_TIMER); - result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(0); // Act & Assert 7 - result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1ValueNEW"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1ValueNEW"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); // Act & Assert 8 - documentUpdateService.updateDocument("fileId1", "UserId", WorkflowStatus.NEW.name(), Map.of("F1Key", "F1Value", "F2Key", "F2Value")); + documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), Map.of("F1Key", "F1Value", "F2Key", "F2Value")); Thread.sleep(UPDATE_TIMER); - result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value", "F2Key", "F2Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); assertThat(result.getMatchedDocuments().stream().map(MatchedDocument::getFileId)).contains("fileId1"); // Act & Assert 9 - documentUpdateService.updateDocument("fileId1", "UserId", WorkflowStatus.NEW.name(), null); + documentUpdateService.updateDocument("fileId1", "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW.name(), null); Thread.sleep(UPDATE_TIMER); - result = searchService.search("S-Metolachlor", null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); + result = searchService.search("S-Metolachlor", null, null, null, null, null, null, Map.of("F1Key", "F1Value"), 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(0); } @@ -251,11 +309,11 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { ClassPathResource textResource2 = new ClassPathResource("files/Text2.json"); Text text2 = objectMapper.readValue(textResource2.getInputStream(), Text.class); - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "Single Study - Oral (Gavage) Mouse.pdf", text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); - documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf", text2, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", "Single Study - Oral (Gavage) Mouse.pdf", text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf", text2, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act & Assert 1 - SearchResult result = searchService.search("S-Metolachlor", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, 0, 10, false); + SearchResult result = searchService.search("S-Metolachlor", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, null, 0, 10, false); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -263,17 +321,17 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { documentDeleteService.deleteDocument("fileId1"); // Act & Assert 2 - result = searchService.search("hans klaus single", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, 0, 10, true); + result = searchService.search("hans klaus single", null, Arrays.asList("dossierId1", "dossierId2"), null, null, null, null, null, 0, 10, true); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); // Act & Assert 3 - result = searchService.search("hans klaus single", null, Arrays.asList("dossierId3", "dossierId4"), null, null, null, null, 0, 10, true); + result = searchService.search("hans klaus single", null, Arrays.asList("dossierId3", "dossierId4"), null, null, null, null, null, 0, 10, true); assertThat(result.getMatchedDocuments().size()).isEqualTo(0); // Act & Assert 4 - result = searchService.search("hans klaus single", Arrays.asList("template1", "template2"), null, null, null, null, null, 0, 10, true); + result = searchService.search("hans klaus single", Arrays.asList("template1", "template2"), null, null, null, null, null, null, 0, 10, true); assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -290,10 +348,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); String fileName = "luke-skywalker-42.pdf"; String searchString = "szedhsegkekhglghserlkghrsdvkerxyfdbvkrdjgh"; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 1, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 1, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(0); @@ -310,10 +368,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); String fileName = "luke-skywalker-42.pdf"; String searchString = fileName; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -332,10 +390,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); String fileName = "luke-blankwalker 42.pdf"; String searchString = fileName; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -355,10 +413,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); String fileName = "luke-skywalker-42.pdf"; String searchString = "luke"; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -377,10 +435,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); String fileName = "luke-skywalker-42.pdf"; String searchString = "luke-skywalker-42"; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -400,10 +458,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { String fileName = "luke-skywalker-42.pdf"; String matchedString = fileName; String searchString = "\"" + matchedString + "\""; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -423,10 +481,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { String fileName = "luke-skywalker-42.pdf"; String matchedString = "luke"; String searchString = "\"" + matchedString + "\""; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -446,10 +504,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { String fileName = "luke-skywalker-42.pdf"; String matchedString = "luke-skywalker-42"; String searchString = "\"luke-skywalker-42\""; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -469,10 +527,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { String fileName = "luke-blankwalker 42.pdf"; String matchedString = fileName; String searchString = "\"" + matchedString + "\""; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1); @@ -491,10 +549,10 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest { Text text = objectMapper.readValue(textResource.getInputStream(), Text.class); String fileName = "luke-skywalker-42.pdf"; String searchString = "14C]-SDS-46851"; - documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); + documentIndexService.indexDocument("template1", "dossierId1", "fileId1", fileName, text, "UserId", DossierStatus.ACTIVE, WorkflowStatus.NEW, Map.of("F1Key", "F1Value")); // Act - SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, 0, 10, true); + SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, null, null, null, null, 0, 10, true); // Assert assertThat(result.getMatchedDocuments().size()).isEqualTo(1);