aboutsummaryrefslogtreecommitdiffstats
path: root/moodle.py
diff options
context:
space:
mode:
authorNao Pross <np@0hm.ch>2020-10-19 09:10:24 +0200
committerNao Pross <np@0hm.ch>2020-10-19 09:10:24 +0200
commitfd7ecbe2f77a1965cdfff362f2b121d2c269feb3 (patch)
treea2c1f7230c74f15d1812c022827d0a3116705745 /moodle.py
parentFix GUI log handler crash (diff)
downloadMuddle-fd7ecbe2f77a1965cdfff362f2b121d2c269feb3.tar.gz
Muddle-fd7ecbe2f77a1965cdfff362f2b121d2c269feb3.zip
Cleaner requests error and exception handling
Diffstat (limited to '')
-rw-r--r--moodle.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/moodle.py b/moodle.py
index ee60dc9..5d0f9bd 100644
--- a/moodle.py
+++ b/moodle.py
@@ -20,7 +20,16 @@ def api_call(url, token, function, **kwargs):
data[str(k)] = v
log.debug(f"calling api with POST to {api_url} with DATA {data}")
- return requests.post(api_url, data=data)
+ try:
+ req = requests.post(api_url, data=data)
+ req.raise_for_status()
+ return req
+ except requests.HTTPError:
+ log.warn(f"Error code returned by HTTP(s) request")
+ return req
+ except (requests.ConnectionError, requests.Timeout, requests.ReadTimeout) as e:
+ log.error(f"Failed to connect for POST request:\n{str(e)}")
+ return None
class RestApi:
def __init__(self, instance_url, token):
@@ -35,7 +44,11 @@ class ApiHelper:
self.api = api
def get_userid(self):
- return self.api.core_webservice_get_site_info().json()["userid"]
+ req = self.api.core_webservice_get_site_info()
+ if req:
+ return req.json()["userid"]
+ else:
+ return None
def get_file(self, url, local_path):
with requests.post(url, data={"token": self.api._token}, stream=True) as r: