Skip to content

Commit cb2c45c

Browse files
authored
Merge pull request #22 from dataiku/bug/sc-87910-rfc-5988-pagination-broken-on-some-servers
Fix for [sc-87910] broken rfc-5988 pagination mode on some servers
2 parents 9759305 + ec67eba commit cb2c45c

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

python-lib/pagination.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def __init__(self, config=None, skip_key=None, limit_key=None, total_key=None, n
2323
self.is_first_batch = None
2424
self.is_paging_started = None
2525
self.next_page_number = None
26+
self.params_must_be_blanked = False
2627

2728
def configure_paging(self, config=None, skip_key=None, limit_key=None, total_key=None, next_page_key=None, url=None, pagination_type="na"):
2829
config = {} if config is None else config
@@ -60,6 +61,7 @@ def update_next_page(self, data, response_links=None):
6061
self.next_page_number = self.next_page_number + 1
6162
if next_page_url:
6263
self.next_page_url = next_page_url
64+
self.params_must_be_blanked = True
6365
if isinstance(data, list):
6466
batch_size = len(data)
6567
self.records_to_skip = self.records_to_skip + batch_size

python-lib/rest_api_client.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,13 @@ def request_with_redirect_retry(self, method, url, **kwargs):
160160
return response
161161

162162
def paginated_api_call(self, can_raise_exeption=True):
163-
pagination_params = self.pagination.get_params()
164-
params = self.requests_kwargs.get("params")
165-
params.update(pagination_params)
166-
self.requests_kwargs.update({"params": params})
163+
if self.pagination.params_must_be_blanked:
164+
self.requests_kwargs["params"] = {}
165+
else:
166+
pagination_params = self.pagination.get_params()
167+
params = self.requests_kwargs.get("params")
168+
params.update(pagination_params)
169+
self.requests_kwargs.update({"params": params})
167170
return self.request(self.http_method, self.pagination.get_next_page_url(), can_raise_exeption, **self.requests_kwargs)
168171

169172
def empty_json_response(self):

0 commit comments

Comments
 (0)