adding pagination to accounts, deployed at 0.0.14
parent
9c492b9566
commit
2bfee316c4
|
@ -1,5 +1,5 @@
|
||||||
""" Python client for Eagle Eye Networks APIv3 """
|
""" Python client for Eagle Eye Networks APIv3 """
|
||||||
version = "0.0.13"
|
version = "0.0.14"
|
||||||
__version__ = version
|
__version__ = version
|
||||||
|
|
||||||
|
|
||||||
|
@ -427,39 +427,49 @@ class EagleEyev3():
|
||||||
Returns:
|
Returns:
|
||||||
dict: Dictionary containing the success status, response HTTP status code, and data.
|
dict: Dictionary containing the success status, response HTTP status code, and data.
|
||||||
"""
|
"""
|
||||||
url = f"https://{self.user_base_url}/api/v3.0/accounts"
|
nextPageToken = None
|
||||||
headers = {
|
|
||||||
"Authorization": f"Bearer {self.access_token}",
|
# emulating a do while toop in order to handle pagination, remember to break out of this loop
|
||||||
"Accept": "application/json"
|
while True:
|
||||||
|
|
||||||
|
if nextPageToken:
|
||||||
|
url = f"https://{self.user_base_url}/api/v3.0/accounts?pageToken={nextPageToken}"
|
||||||
|
else:
|
||||||
|
url = f"https://{self.user_base_url}/api/v3.0/accounts"
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Authorization": f"Bearer {self.access_token}",
|
||||||
|
"Accept": "application/json"
|
||||||
|
}
|
||||||
|
|
||||||
|
response = self._make_get_request(url=url, headers=headers, timeout='list_of_accounts')
|
||||||
|
|
||||||
|
if response:
|
||||||
|
response_json = response.json()
|
||||||
|
|
||||||
|
logging.info(f"{response.status_code} in get_list_of_accounts")
|
||||||
|
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
"success": False,
|
||||||
|
"response_http_status": 0,
|
||||||
|
"data": None
|
||||||
}
|
}
|
||||||
|
|
||||||
try:
|
|
||||||
response = requests.get(url, headers=headers, timeout=self._get_timeout_values('list_of_accounts'))
|
|
||||||
response_json = response.json()
|
|
||||||
|
|
||||||
logging.info(f"{response.status_code} in get_list_of_accounts")
|
if response.status_code == 200:
|
||||||
|
success = True
|
||||||
|
self.accounts = [i for i in response_json['results'] if i not in self.accounts] + self.accounts
|
||||||
|
|
||||||
except requests.exceptions.Timeout:
|
if 'nextPageToken' in response_json and len(response_json['nextPageToken']) > 0:
|
||||||
logging.warn(f"timeout expired for get_list_of_accounts()")
|
nextPageToken = response_json['nextPageToken']
|
||||||
return {
|
else:
|
||||||
"success": False,
|
break
|
||||||
"response_http_status": 0,
|
|
||||||
"data": None
|
|
||||||
}
|
|
||||||
|
|
||||||
except requests.exceptions.RequestException as e:
|
else:
|
||||||
logging.warn(e)
|
success = False
|
||||||
return {
|
break
|
||||||
"success": False,
|
|
||||||
"response_http_status": 0,
|
|
||||||
"data": None
|
|
||||||
}
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
|
||||||
success = True
|
|
||||||
self.accounts = [i for i in response_json['results'] if i not in self.accounts] + self.accounts
|
|
||||||
else:
|
|
||||||
success = False
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"success": success,
|
"success": success,
|
||||||
|
@ -544,7 +554,7 @@ class EagleEyev3():
|
||||||
return response
|
return response
|
||||||
|
|
||||||
except requests.exceptions.Timeout:
|
except requests.exceptions.Timeout:
|
||||||
logging.warn(f"timeout expired get_list_of_cameras()")
|
logging.warn(f"timeout expired _make_get_request {timeout}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
except requests.exceptions.RequestException as e:
|
except requests.exceptions.RequestException as e:
|
||||||
|
|
Loading…
Reference in New Issue