|
42 | 42 | from stac_pydantic.shared import MimeTypes |
43 | 43 |
|
44 | 44 | from eodag import SearchResult |
45 | | -from eodag.api.core import DEFAULT_ITEMS_PER_PAGE |
46 | 45 | from eodag.plugins.search.build_search_result import ECMWFSearch |
47 | 46 | from eodag.utils import deepcopy, get_geometry_from_various |
48 | 47 | from eodag.utils.exceptions import NoMatchingCollection as EodagNoMatchingCollection |
@@ -217,13 +216,8 @@ def _search_base(self, search_request: BaseSearchPostRequest, request: Request) |
217 | 216 |
|
218 | 217 | # pagination |
219 | 218 | next_page = None |
220 | | - if search_request.page: |
221 | | - number_returned = len(search_result) |
222 | | - items_per_page = search_request.limit or DEFAULT_ITEMS_PER_PAGE |
223 | | - if not search_result.number_matched or ( |
224 | | - (search_request.page - 1) * items_per_page + number_returned < search_result.number_matched |
225 | | - ): |
226 | | - next_page = search_request.page + 1 |
| 219 | + if hasattr(search_result, "next_page_token_key"): |
| 220 | + next_page = search_result.next_page_token_key.split(":", 1)[1] |
227 | 221 |
|
228 | 222 | collection["links"] = PagingLinks( |
229 | 223 | request=request, |
@@ -447,6 +441,7 @@ def get_search( |
447 | 441 | intersects: Optional[str] = None, |
448 | 442 | filter_expr: Optional[str] = None, |
449 | 443 | filter_lang: Optional[str] = "cql2-text", |
| 444 | + token: Optional[str] = None, |
450 | 445 | **kwargs: Any, |
451 | 446 | ) -> ItemCollection: |
452 | 447 | """ |
@@ -474,7 +469,7 @@ def get_search( |
474 | 469 | "bbox": bbox, |
475 | 470 | "limit": limit, |
476 | 471 | "query": orjson.loads(unquote_plus(query)) if query else query, |
477 | | - "page": page, |
| 472 | + "token": token, |
478 | 473 | "sortby": get_sortby_to_post(sortby), |
479 | 474 | "intersects": orjson.loads(unquote_plus(intersects)) if intersects else intersects, |
480 | 475 | } |
@@ -569,7 +564,7 @@ def prepare_search_base_args(search_request: BaseSearchPostRequest, model: type[ |
569 | 564 | """ |
570 | 565 | base_args = ( |
571 | 566 | { |
572 | | - "page": search_request.page, |
| 567 | + "token": search_request.token, |
573 | 568 | "items_per_page": search_request.limit, |
574 | 569 | "raise_errors": False, |
575 | 570 | "count": get_settings().count, |
|
0 commit comments