aboutsummaryrefslogtreecommitdiffstats
path: root/moodle.py
diff options
context:
space:
mode:
Diffstat (limited to 'moodle.py')
-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: