Skip to content

Commit

Permalink
Add remainder of backoff checks
Browse files Browse the repository at this point in the history
  • Loading branch information
urschrei committed Jun 11, 2019
1 parent d924f18 commit b307759
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions pyzotero/zotero.py
Expand Up @@ -495,6 +495,9 @@ def _updated(self, url, payload, template=None):
req.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(self, req)
backoff = self.request.headers.get("backoff")
if backoff:
self._set_backoff(backoff)
return req.status_code == 304
# Still plenty of life left in't
return False
Expand Down Expand Up @@ -652,6 +655,9 @@ def new_fulltext(self, version):
resp.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(self, resp)
backoff = self.request.headers.get("backoff")
if backoff:
self._set_backoff(backoff)
return resp.json()

def item_versions(self, **kwargs):
Expand Down Expand Up @@ -1065,6 +1071,9 @@ def saved_search(self, name, conditions):
req.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(self, req)
backoff = self.request.headers.get("backoff")
if backoff:
self._set_backoff(backoff)
return req.json()

@ss_wrap
Expand All @@ -1086,6 +1095,9 @@ def delete_saved_search(self, keys):
req.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(self, req)
backoff = self.request.headers.get("backoff")
if backoff:
self._set_backoff(backoff)
return req.status_code

def upload_attachments(self, attachments, parentid=None, basedir=None):
Expand Down Expand Up @@ -1240,6 +1252,9 @@ def create_items(self, payload, parentid=None, last_modified=None):
except requests.exceptions.HTTPError:
error_handler(self, req)
resp = req.json()
backoff = self.request.headers.get("backoff")
if backoff:
self._set_backoff(backoff)
if parentid:
# we need to create child items using PATCH
# TODO: handle possibility of item creation + failed parent
Expand All @@ -1264,6 +1279,9 @@ def create_items(self, payload, parentid=None, last_modified=None):
presp.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(self, presp)
backoff = presp.get("backoff")
if backoff:
self._set_backoff(backoff)
return resp

def create_collection(self, payload, last_modified=None):
Expand Down Expand Up @@ -1301,6 +1319,9 @@ def create_collections(self, payload, last_modified=None):
req.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(self, req)
backoff = req.headers.get("backoff")
if backoff:
self._set_backoff(backoff)
return req.json()

@backoff_check
Expand Down Expand Up @@ -1406,6 +1427,9 @@ def update_items(self, payload):
req.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(self, req)
backoff = req.get("backoff")
if backoff:
self._set_backoff(backoff)
return True

def update_collections(self, payload):
Expand Down Expand Up @@ -1433,6 +1457,9 @@ def update_collections(self, payload):
req.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(self, req)
backoff = req.get("backoff")
if backoff:
self._set_backoff(backoff)
return True

@backoff_check
Expand Down Expand Up @@ -1853,6 +1880,9 @@ def _create_prelim(self):
req.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(zinstance, req)
backoff = req.get("backoff")
if backoff:
zinstance._set_backoff(backoff)
data = req.json()
for k in data["success"]:
self.payload[int(k)]["key"] = data["success"][k]
Expand Down Expand Up @@ -1896,6 +1926,9 @@ def _get_auth(self, attachment, reg_key, md5=None):
auth_req.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(zinstance, auth_req)
backoff = auth_req.headers.get("backoff")
if backoff:
zinstance._set_backoff(backoff)
return auth_req.json()

def _upload_file(self, authdata, attachment, reg_key):
Expand Down Expand Up @@ -1934,6 +1967,9 @@ def _upload_file(self, authdata, attachment, reg_key):
upload.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(zinstance, upload)
backoff = upload.get("backoff")
if backoff:
zinstance._set_backoff(backoff)
# now check the responses
return self._register_upload(authdata, reg_key)

Expand All @@ -1960,6 +1996,9 @@ def _register_upload(self, authdata, reg_key):
upload_reg.raise_for_status()
except requests.exceptions.HTTPError:
error_handler(zinstance, upload_reg)
backoff = upload_reg.get("backoff")
if backoff:
self._set_backoff(backoff)

def upload(self):
"""
Expand Down

0 comments on commit b307759

Please sign in to comment.