Skip to content
Snippets Groups Projects
Commit e0b9da2b authored by Thomas Kluyver's avatar Thomas Kluyver
Browse files

Don't return pagination info by default

parent ff31b922
No related branches found
No related tags found
1 merge request!885Revised CalCat API
......@@ -61,6 +61,7 @@ class CalCatAPIClient:
return dt
def get_request(self, relative_url, params=None, headers=None, **kwargs):
"""Make a GET request, return the HTTP response object"""
# Base URL may include e.g. '/api/'. This is a prefix for all URLs;
# even if they look like an absolute path.
url = urljoin(self.base_api_url, relative_url.lstrip("/"))
......@@ -85,26 +86,31 @@ class CalCatAPIClient:
if resp.content == b"":
return None
else:
res = json.loads(resp.content.decode("utf-8"))
pagination_header_fields = [
"X-Total-Pages",
"X-Count-Per-Page",
"X-Current-Page",
"X-Total-Count",
]
pagination_info = {
k[2:].lower().replace("-", "_"): int(resp.headers[k])
for k in pagination_header_fields
if k in resp.headers
}
if pagination_info:
res[".pages"] = pagination_info
return res
return json.loads(resp.content.decode("utf-8"))
def get(self, relative_url, params=None, **kwargs):
"""Make a GET request, return response content from JSON"""
resp = self.get_request(relative_url, params, **kwargs)
return self._parse_response(resp)
_pagination_headers = (
"X-Total-Pages",
"X-Count-Per-Page",
"X-Current-Page",
"X-Total-Count",
)
def get_paged(self, relative_url, params=None, **kwargs):
"""Make a GET request, return response content & pagination info"""
resp = self.get_request(relative_url, params, **kwargs)
content = self._parse_response(resp)
pagination_info = {
k[2:].lower().replace("-", "_"): int(resp.headers[k])
for k in self._pagination_headers
if k in resp.headers
}
return content, pagination_info
global_client = None
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment