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: ...@@ -61,6 +61,7 @@ class CalCatAPIClient:
return dt return dt
def get_request(self, relative_url, params=None, headers=None, **kwargs): 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; # Base URL may include e.g. '/api/'. This is a prefix for all URLs;
# even if they look like an absolute path. # even if they look like an absolute path.
url = urljoin(self.base_api_url, relative_url.lstrip("/")) url = urljoin(self.base_api_url, relative_url.lstrip("/"))
...@@ -85,26 +86,31 @@ class CalCatAPIClient: ...@@ -85,26 +86,31 @@ class CalCatAPIClient:
if resp.content == b"": if resp.content == b"":
return None return None
else: else:
res = json.loads(resp.content.decode("utf-8")) return 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
def get(self, relative_url, params=None, **kwargs): 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) resp = self.get_request(relative_url, params, **kwargs)
return self._parse_response(resp) 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 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