From 19bdb0a0e0aae20dbd036ce19512da79c45ab6d5 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 21 Feb 2011 15:39:37 -0500 Subject: [PATCH] Added new error handling message passing. --- convore/api.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/convore/api.py b/convore/api.py index cbe4b82..fb804a8 100644 --- a/convore/api.py +++ b/convore/api.py @@ -26,7 +26,7 @@ API_URL = 'https://convore.com/api/' # Helpers # ======= -def _safe_response(r): +def _safe_response(r, error=None): try: r.raise_for_status() return r @@ -34,11 +34,14 @@ def _safe_response(r): if r.status_code == 401: raise LoginFailed else: - raise APIError + raise APIError(error) if error else APIError -def get(*path): +def get(*path, **kwargs): """ + Accepts optional error parameter, which will be passed in the event of a + non-401 HTTP error. + api.get('groups') api.get('groups', 'id') api.get('accounts', 'verify') @@ -46,8 +49,9 @@ def get(*path): url = '%s%s%s' % (API_URL, '/'.join(map(str, path)), '.json') r = requests.get(url) - - return _safe_response(r) + + error = kwargs.get('error', None) + return _safe_response(r, error) def post(params, *path):