From 27e3ca71f920083e8bf1599facc2cc4638f8efcf Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Mon, 23 Nov 2015 19:51:12 -0300 Subject: Return 422 if deletion failed This is needed for protecting against concurrent saves on drafts. --Issue #512 --- service/pixelated/adapter/services/draft_service.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'service/pixelated/adapter/services/draft_service.py') diff --git a/service/pixelated/adapter/services/draft_service.py b/service/pixelated/adapter/services/draft_service.py index 70cc9136..98444442 100644 --- a/service/pixelated/adapter/services/draft_service.py +++ b/service/pixelated/adapter/services/draft_service.py @@ -29,6 +29,7 @@ class DraftService(object): @defer.inlineCallbacks def update_draft(self, ident, input_mail): - yield self._mail_store.delete_mail(ident) - new_draft = yield self.create_draft(input_mail) - defer.returnValue(new_draft) + removed = yield self._mail_store.delete_mail(ident) + if removed: + new_draft = yield self.create_draft(input_mail) + defer.returnValue(new_draft) -- cgit v1.2.3