From 47860493af9d3ecc39dc1824518c9faec397987f Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Tue, 28 Feb 2012 14:54:40 -0800 Subject: [PATCH] Better API error handling. --- djrill/views.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/djrill/views.py b/djrill/views.py index ff1cdb2..5713e78 100644 --- a/djrill/views.py +++ b/djrill/views.py @@ -75,9 +75,16 @@ class DjrillApiJsonObjectsMixin(object): data=payload) if req.status_code == 200: return req.content - messages.error(self.request, - "Mandrill returned something other than a 200.") - return HttpResponseRedirect(reverse("admin:index")) + messages.error(self.request, self._api_error_handler(req)) + return json.dumps("error") + + def _api_error_handler(self, req): + """ + If the API returns an error, display it to the user. + """ + content = json.loads(req.content) + return "Mandrill returned a %d response: %s" % (req.status_code, + content["message"]) class DjrillIndexView(DjrillApiMixin, TemplateView):