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 e7f9ea1..ad6b01d 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,8 +19,8 @@ public class SearchRequest { private List dossierTemplateIds; private String fileId; private String assignee; - private boolean inArchivedDossiers; - private boolean inDeletedDossiers; + private boolean includeArchivedDossiers; + private boolean includeDeletedDossiers; private String workflowStatus; private Map fileAttributes; private int page; 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 3b9c94e..a27f10a 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,8 +23,8 @@ public class SearchController implements SearchResource { searchRequest.getDossierIds(), searchRequest.getFileId(), searchRequest.getAssignee(), - searchRequest.isInDeletedDossiers(), - searchRequest.isInArchivedDossiers(), + searchRequest.isIncludeDeletedDossiers(), + searchRequest.isIncludeArchivedDossiers(), 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/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 aeb149f..647a7b1 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 @@ -46,8 +46,8 @@ public class SearchService { List dossierIds, String fileId, String assignee, - boolean inDeletedDossiers, - boolean inArchivedDossiers, + boolean includeDeletedDossiers, + boolean includeArchivedDossiers, String workflowStatus, Map fileAttributes, int page, @@ -59,7 +59,7 @@ public class SearchService { SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query( convertQuery(query, dossierTemplateIds, dossierIds, fileId, assignee, - inDeletedDossiers, inArchivedDossiers, workflowStatus, fileAttributes, returnSections)) + includeDeletedDossiers, includeArchivedDossiers, workflowStatus, fileAttributes, returnSections)) .from(getPageOrDefault(page) * getPageSizeOrDefault(pageSize)) .size(getPageSizeOrDefault(pageSize)) .fetchSource(new String[]{"dossierId", "dossierTemplateId", "fileId", "assignee", "dossierStatus", "workflowStatus", "fileAttributes"}, new String[]{"sections"}) @@ -90,8 +90,8 @@ public class SearchService { List dossierIds, String fileId, String assignee, - boolean inDeletedDossiers, - boolean inArchivedDossiers, + boolean includeDeletedDossiers, + boolean includeArchivedDossiers, String workflowStatus, Map fileAttributes, boolean returnSections @@ -167,12 +167,17 @@ public class SearchService { filterQuery.must(QueryBuilders.matchQuery("assignee", assignee)); } - var dossierStatusQueryBuilder = QueryBuilders.boolQuery(); + if (includeArchivedDossiers) { + filterQuery.must(QueryBuilders.matchQuery("dossierArchived", List.of(true, false))); + } else { + filterQuery.must(QueryBuilders.matchQuery("dossierArchived", false)); + } - dossierStatusQueryBuilder = dossierStatusQueryBuilder.must(QueryBuilders.matchQuery("dossierArchived", inArchivedDossiers)); - dossierStatusQueryBuilder = dossierStatusQueryBuilder.must(QueryBuilders.matchQuery("dossierDeleted", inDeletedDossiers)); - - filterQuery.must(dossierStatusQueryBuilder); + if (includeDeletedDossiers) { + filterQuery.must(QueryBuilders.matchQuery("dossierDeleted", List.of(true, false))); + } else { + filterQuery.must(QueryBuilders.matchQuery("dossierDeleted", false)); + } if (StringUtils.isNotEmpty(workflowStatus)) { filterQuery.must(QueryBuilders.matchQuery("workflowStatus", workflowStatus)); diff --git a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/SearchTest.java b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/SearchTest.java index c4af588..0b719bc 100644 --- a/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/SearchTest.java +++ b/search-service-v1/search-service-server-v1/src/test/java/com/iqser/red/service/search/v1/server/service/SearchTest.java @@ -223,7 +223,9 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest { // Act & Assert 1 SearchResult result = searchService.search("S-Metolachlor", null, null, null, null, true, false, null, null, 0, 10, false); - assertThat(result.getMatchedDocuments().size()).isEqualTo(0); + 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, false, false, null, null, 0, 10, false); @@ -233,7 +235,9 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest { // Act & Assert 2 result = searchService.search("S-Metolachlor", null, null, null, null, false, true, null, null, 0, 10, false); - assertThat(result.getMatchedDocuments().size()).isEqualTo(0); + 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", false, true, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value")); @@ -244,8 +248,9 @@ public class SearchTest extends AbstractElasticsearchIntegrationTest { // Act & Assert 4 result = searchService.search("S-Metolachlor", null, null, null, null, false, true, null, null, 0, 10, false); - assertThat(result.getMatchedDocuments().size()).isEqualTo(1); + 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 5 documentUpdateService.updateDocument("fileId2", "UserId2", true, false, WorkflowStatus.APPROVED.name(), Map.of("U2Key", "U2Value"));