Skip to content

Commit

Permalink
added MAX_PAGE_SIZE of 1000 for all the lists endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
marcos-lg committed Jul 19, 2023
1 parent d9846ff commit 90bce5e
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
import org.gbif.registry.ws.client.InstallationClient;
import org.gbif.registry.ws.client.NodeClient;
import org.gbif.registry.ws.client.OrganizationClient;
import org.gbif.registry.ws.provider.networkEntitiesList.BaseRequestSearchParamsHandlerMethodArgumentResolver;
import org.gbif.registry.ws.resources.DatasetResource;
import org.gbif.utils.file.FileUtils;
import org.gbif.ws.NotFoundException;
Expand Down Expand Up @@ -1164,18 +1165,6 @@ public void testListByType(ServiceType serviceType) {
assertResultsOfSize(service.listByType(DatasetType.SAMPLING_EVENT, new PagingRequest()), 4);
}

@ParameterizedTest
@EnumSource(ServiceType.class)
public void testListLimits(ServiceType serviceType) {
DatasetService service = (DatasetService) getService(serviceType);

// test high limit
DatasetRequestSearchParams searchParams = new DatasetRequestSearchParams();
searchParams.setLimit(301);
assertThrows(IllegalArgumentException.class, () -> service.list(searchParams));
assertThrows(IllegalArgumentException.class, () -> service.listDeleted(searchParams));
}

@ParameterizedTest
@EnumSource(ServiceType.class)
public void testList(ServiceType serviceType) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,12 @@
public abstract class BaseGrSciCollSearchRequestHandlerMethodArgumentResolver
implements HandlerMethodArgumentResolver {

public static final int MAX_PAGE_SIZE = 1000;

protected <T extends SearchRequest> void fillSearchRequestParams(
T request, NativeWebRequest webRequest) {
// page
Pageable page = PageableProvider.getPagingRequest(webRequest, Integer.MAX_VALUE);
Pageable page = PageableProvider.getPagingRequest(webRequest, MAX_PAGE_SIZE);
request.setLimit(page.getLimit());
request.setOffset(page.getOffset());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
public abstract class BaseRequestSearchParamsHandlerMethodArgumentResolver
implements HandlerMethodArgumentResolver {

public static final int MAX_PAGE_SIZE = 1000;

public Object fillCommonParams(RequestSearchParams params, NativeWebRequest webRequest) {

params.setIdentifier(webRequest.getParameter(RequestSearchParams.IDENTIFIER_PARAM));
Expand All @@ -45,7 +47,7 @@ public Object fillCommonParams(RequestSearchParams params, NativeWebRequest webR
.ifPresent(v -> params.setModified(SearchTypeValidator.parseDateRange(v)));

// page
Pageable page = PageableProvider.getPagingRequest(webRequest, Integer.MAX_VALUE);
Pageable page = PageableProvider.getPagingRequest(webRequest, MAX_PAGE_SIZE);
params.setLimit(page.getLimit());
params.setOffset(page.getOffset());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -474,11 +474,6 @@ private PagingResponse<Dataset> listInternal(
request = new DatasetRequestSearchParams();
}

// A high limit might cause outages due to the high amount of data to be loaded
if (request.getPage().getLimit() > 300) {
throw new IllegalArgumentException("The maximum limit allowed is 300");
}

DatasetListParams listParams =
DatasetListParams.builder()
.query(parseQuery(request.getQ()))
Expand Down

0 comments on commit 90bce5e

Please sign in to comment.