Skip to content

Commit

Permalink
- fix checkstyle issues
Browse files Browse the repository at this point in the history
  • Loading branch information
psmagin committed Apr 16, 2024
1 parent 54f9735 commit 522b292
Show file tree
Hide file tree
Showing 10 changed files with 30 additions and 33 deletions.
16 changes: 7 additions & 9 deletions src/main/java/org/folio/search/controller/SearchController.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
package org.folio.search.controller;

import java.util.List;
import lombok.RequiredArgsConstructor;
import org.folio.search.domain.dto.Authority;
import org.folio.search.domain.dto.AuthoritySearchResult;
import org.folio.search.domain.dto.InstanceDto;
import org.folio.search.domain.dto.Instance;
import org.folio.search.domain.dto.InstanceSearchResult;
import org.folio.search.model.service.CqlSearchRequest;
import org.folio.search.rest.resource.SearchApi;
import org.folio.search.service.SearchService;
import org.folio.search.service.consortium.TenantProvider;
import org.folio.search.utils.SearchUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
Expand All @@ -26,12 +24,13 @@ public class SearchController implements SearchApi {
private final TenantProvider tenantProvider;

@Override
public ResponseEntity<AuthoritySearchResult> searchAuthorities(
String tenant, String query, Integer limit, Integer offset, Boolean expandAll, Boolean includeNumberOfTitles) {
public ResponseEntity<AuthoritySearchResult> searchAuthorities(String tenant, String query, Integer limit,
Integer offset, Boolean expandAll,
Boolean includeNumberOfTitles) {

tenant = tenantProvider.getTenant(tenant);
var searchRequest = CqlSearchRequest.of(
SearchUtils.AUTHORITY_RESOURCE, Authority.class, tenant, query, limit, offset, expandAll, includeNumberOfTitles);
Authority.class, tenant, query, limit, offset, expandAll, includeNumberOfTitles);
var result = searchService.search(searchRequest);
return ResponseEntity.ok(new AuthoritySearchResult()
.authorities(result.getRecords())
Expand All @@ -42,11 +41,10 @@ public ResponseEntity<AuthoritySearchResult> searchAuthorities(
public ResponseEntity<InstanceSearchResult> searchInstances(String tenantId, String query, Integer limit,
Integer offset, Boolean expandAll) {
tenantId = tenantProvider.getTenant(tenantId);
var searchRequest =
CqlSearchRequest.of(SearchUtils.INSTANCE_RESOURCE, InstanceDto.class, tenantId, query, limit, offset, expandAll);
var searchRequest = CqlSearchRequest.of(Instance.class, tenantId, query, limit, offset, expandAll);
var result = searchService.search(searchRequest);
return ResponseEntity.ok(new InstanceSearchResult()
.instances((List<InstanceDto>) result.getRecords())
.instances(result.getRecords())
.totalRecords(result.getTotalRecords()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Data;
import lombok.RequiredArgsConstructor;
import org.folio.search.model.ResourceRequest;
import org.folio.search.utils.SearchUtils;

/**
* CQL based search request model.
Expand All @@ -20,7 +21,7 @@ public class CqlSearchRequest<T> implements ResourceRequest {
/**
* Resource class for response.
*/
private final Class<T> responseClass;
private final Class<T> resourceClass;

/**
* Request tenant id.
Expand Down Expand Up @@ -55,26 +56,26 @@ public class CqlSearchRequest<T> implements ResourceRequest {
/**
* Creates {@link CqlSearchRequest} object for given variables.
*
* @param <T> - generic type for {@link CqlSearchRequest} object.
* @param resourceName - resource name
* @param resourceClass - resource class
* @param tenantId - tenant id
* @param query - CQL query
* @param limit - search result records limit
* @param offset - search result offset
* @param expandAll - whether to return only response properties or entire record
* @param <R> - generic type for {@link CqlSearchRequest} object.
* @param includeNumberOfTitles - indicates whether the number of titles should be counted.
* @return created {@link CqlSearchRequest} object
*/
public static <T> CqlSearchRequest<T> of(String resourceName, Class<T> responseClass, String tenantId, String query,
public static <R> CqlSearchRequest<R> of(Class<R> resourceClass, String tenantId, String query,
Integer limit, Integer offset, Boolean expandAll,
Boolean includeNumberOfTitles) {
return new CqlSearchRequest<>(resourceName, responseClass, tenantId, query, limit, offset, expandAll,
var resource = SearchUtils.getResourceName(resourceClass);
return new CqlSearchRequest<>(resource, resourceClass, tenantId, query, limit, offset, expandAll,
includeNumberOfTitles);
}

public static <T> CqlSearchRequest<T> of(String resourceName, Class<T> responseClass, String tenantId, String query,
public static <R> CqlSearchRequest<R> of(Class<R> resourceClass, String tenantId, String query,
Integer limit, Integer offset, Boolean expandAll) {
return CqlSearchRequest.of(resourceName, responseClass, tenantId, query, limit, offset, expandAll, true
);
return CqlSearchRequest.of(resourceClass, tenantId, query, limit, offset, expandAll, true);
}
}
4 changes: 2 additions & 2 deletions src/main/java/org/folio/search/service/SearchService.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ public <T> SearchResult<T> search(CqlSearchRequest<T> request) {
}

var searchResponse = searchRepository.search(request, queryBuilder, preference);
var searchResult = documentConverter.convertToSearchResult(searchResponse, request.getResponseClass());
var searchResult = documentConverter.convertToSearchResult(searchResponse, request.getResourceClass());

searchResultPostProcessing(request.getResponseClass(), request.getIncludeNumberOfTitles(), searchResult);
searchResultPostProcessing(request.getResourceClass(), request.getIncludeNumberOfTitles(), searchResult);

return searchResult;
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/folio/search/utils/SearchUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ public static String getIndexName(ResourceEvent event) {
* @return generated index name.
*/
public static String getIndexName(String resource, String tenantId) {
return getFolioEnvName().toLowerCase(ROOT) + "_" + resource + "_" + tenantId;
return getFolioEnvName().toLowerCase(ROOT) + "_" + resource.toLowerCase(ROOT) + "_" + tenantId;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@ value:
staffSuppress: false
discoverySuppress: false
isBoundWith: false
electronicAccess: [ ]
notes: [ ]
items: [ ]
holdings: [ ]
totalRecords: 1
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,4 @@ properties:
type: "array"
description: "List of instances found"
items:
title: InstanceDto
anyOf:
- $ref: "../../schemas/dto/instance/instanceBasicSearchResultItem.yaml"
- $ref: "../../schemas/dto/instance/instanceFullSearchResultItem.yaml"
$ref: "../../schemas/entity/instance.yaml"
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import static org.folio.search.utils.TestUtils.parseResponse;

import org.assertj.core.api.Assertions;
import org.folio.search.domain.dto.InstanceBasicSearchResultItem;
import org.folio.search.domain.dto.Instance;
import org.folio.search.domain.dto.InstanceSearchResult;
import org.folio.search.support.base.BaseConsortiumIntegrationTest;
import org.folio.spring.testing.type.IntegrationTest;
Expand Down Expand Up @@ -38,7 +38,7 @@ void responseContainsOnlyBasicInstanceProperties() {
var actual = parseResponse(response, InstanceSearchResult.class);

Assertions.assertThat(actual.getInstances())
.allSatisfy(instanceDto -> Assertions.assertThat(instanceDto).isInstanceOf(InstanceBasicSearchResultItem.class));
.allSatisfy(instanceDto -> Assertions.assertThat(instanceDto).isInstanceOf(Instance.class));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
import java.util.stream.Stream;
import org.assertj.core.api.Assertions;
import org.folio.search.domain.dto.Instance;
import org.folio.search.domain.dto.InstanceBasicSearchResultItem;
import org.folio.search.domain.dto.InstanceFullSearchResultItem;
import org.folio.search.domain.dto.InstanceSearchResult;
import org.folio.search.support.base.BaseIntegrationTest;
import org.folio.spring.testing.type.IntegrationTest;
Expand Down Expand Up @@ -123,7 +121,7 @@ void responseContainsOnlyBasicInstanceProperties() {
var actual = parseResponse(response, InstanceSearchResult.class);

Assertions.assertThat(actual.getInstances())
.allSatisfy(instanceDto -> Assertions.assertThat(instanceDto).isInstanceOf(InstanceBasicSearchResultItem.class));
.allSatisfy(instanceDto -> Assertions.assertThat(instanceDto).isInstanceOf(Instance.class));
}

@Test
Expand All @@ -134,7 +132,7 @@ void responseContainsAllInstanceProperties() {
var actual = parseResponse(response, InstanceSearchResult.class);

Assertions.assertThat(actual.getInstances())
.allSatisfy(instanceDto -> Assertions.assertThat(instanceDto).isInstanceOf(InstanceFullSearchResultItem.class));
.allSatisfy(instanceDto -> Assertions.assertThat(instanceDto).isInstanceOf(Instance.class));
}

private static Stream<Arguments> testDataProvider() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ void search_positive() {

@Test
void search_negative_sumOfOffsetAndLimitExceeds10000() {
var searchRequest = CqlSearchRequest.of("resource", TestResource.class, TENANT_ID,
SEARCH_QUERY, 500, 9600, false, true);
var searchRequest = CqlSearchRequest.of(TestResource.class, TENANT_ID, SEARCH_QUERY, 500, 9600, false, true);
assertThatThrownBy(() -> searchService.search(searchRequest))
.isInstanceOf(RequestValidationException.class)
.hasMessage("The sum of limit and offset should not exceed 10000.");
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/org/folio/search/utils/TestUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public static <T> CqlSearchRequest<T> searchServiceRequest(Class<T> resourceClas

public static <T> CqlSearchRequest<T> searchServiceRequest(Class<T> resourceClass, String tenantId, String query,
boolean expandAll) {
return CqlSearchRequest.of(resourceClass.getSimpleName(), resourceClass, tenantId, query, 100, 0, expandAll);
return CqlSearchRequest.of(resourceClass, tenantId, query, 100, 0, expandAll);
}

public static CqlFacetRequest defaultFacetServiceRequest(String resource, String query, String... facets) {
Expand Down

0 comments on commit 522b292

Please sign in to comment.