summaryrefslogtreecommitdiff
path: root/service/pixelated/resources/mail_resource.py
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-07-17 22:50:28 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:24 +0200
commitad65388274feaea5f4e0c3df0aafeb800825491e (patch)
tree694400cc3ebd1885694cc22cf3810669dc490982 /service/pixelated/resources/mail_resource.py
parent422c434224c965385a21d0d2948b005b6d44cccb (diff)
fixing integration.test_tags
Diffstat (limited to 'service/pixelated/resources/mail_resource.py')
-rw-r--r--service/pixelated/resources/mail_resource.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/service/pixelated/resources/mail_resource.py b/service/pixelated/resources/mail_resource.py
index 15ca1939..f11862af 100644
--- a/service/pixelated/resources/mail_resource.py
+++ b/service/pixelated/resources/mail_resource.py
@@ -16,11 +16,14 @@ class MailTags(Resource):
def render_POST(self, request):
new_tags = json.loads(request.content.read()).get('newtags')
- try:
- mail = self._mail_service.update_tags(self._mail_id, new_tags)
- except ValueError as ve:
- return respond_json(ve.message, request, 403)
- return respond_json(mail.as_dict(), request)
+ d = self._mail_service.update_tags(self._mail_id, new_tags)
+ d.addCallback(lambda mail: respond_json_deferred(mail.as_dict(), request))
+
+ def handle403(failure):
+ failure.trap(ValueError)
+ return respond_json_deferred(failure.getErrorMessage(), request, 403)
+ d.addErrback(handle403)
+ return NOT_DONE_YET
class Mail(Resource):