From 90bce5ea5bd78531ae25a4314dc9cf4367b9ffdd Mon Sep 17 00:00:00 2001 From: Marcos Lopez Gonzalez Date: Wed, 19 Jul 2023 15:28:11 +0200 Subject: [PATCH] added MAX_PAGE_SIZE of 1000 for all the lists endpoints --- .../java/org/gbif/registry/ws/it/DatasetIT.java | 13 +------------ ...lSearchRequestHandlerMethodArgumentResolver.java | 4 +++- ...stSearchParamsHandlerMethodArgumentResolver.java | 4 +++- .../gbif/registry/ws/resources/DatasetResource.java | 5 ----- 4 files changed, 7 insertions(+), 19 deletions(-) diff --git a/registry-integration-tests/src/test/java/org/gbif/registry/ws/it/DatasetIT.java b/registry-integration-tests/src/test/java/org/gbif/registry/ws/it/DatasetIT.java index 0bad6a9103..45bb513344 100644 --- a/registry-integration-tests/src/test/java/org/gbif/registry/ws/it/DatasetIT.java +++ b/registry-integration-tests/src/test/java/org/gbif/registry/ws/it/DatasetIT.java @@ -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; @@ -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) { diff --git a/registry-ws/src/main/java/org/gbif/registry/ws/provider/BaseGrSciCollSearchRequestHandlerMethodArgumentResolver.java b/registry-ws/src/main/java/org/gbif/registry/ws/provider/BaseGrSciCollSearchRequestHandlerMethodArgumentResolver.java index 4fc2be4107..9756f7b262 100644 --- a/registry-ws/src/main/java/org/gbif/registry/ws/provider/BaseGrSciCollSearchRequestHandlerMethodArgumentResolver.java +++ b/registry-ws/src/main/java/org/gbif/registry/ws/provider/BaseGrSciCollSearchRequestHandlerMethodArgumentResolver.java @@ -32,10 +32,12 @@ public abstract class BaseGrSciCollSearchRequestHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { + public static final int MAX_PAGE_SIZE = 1000; + protected 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()); diff --git a/registry-ws/src/main/java/org/gbif/registry/ws/provider/networkEntitiesList/BaseRequestSearchParamsHandlerMethodArgumentResolver.java b/registry-ws/src/main/java/org/gbif/registry/ws/provider/networkEntitiesList/BaseRequestSearchParamsHandlerMethodArgumentResolver.java index f111ea3cf0..a1ce0cec6c 100644 --- a/registry-ws/src/main/java/org/gbif/registry/ws/provider/networkEntitiesList/BaseRequestSearchParamsHandlerMethodArgumentResolver.java +++ b/registry-ws/src/main/java/org/gbif/registry/ws/provider/networkEntitiesList/BaseRequestSearchParamsHandlerMethodArgumentResolver.java @@ -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)); @@ -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()); diff --git a/registry-ws/src/main/java/org/gbif/registry/ws/resources/DatasetResource.java b/registry-ws/src/main/java/org/gbif/registry/ws/resources/DatasetResource.java index d2a5104934..53542061ff 100644 --- a/registry-ws/src/main/java/org/gbif/registry/ws/resources/DatasetResource.java +++ b/registry-ws/src/main/java/org/gbif/registry/ws/resources/DatasetResource.java @@ -474,11 +474,6 @@ private PagingResponse 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()))