summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter/services
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-11-23 19:51:12 -0300
committerVictor Shyba <victor.shyba@gmail.com>2015-11-23 19:51:12 -0300
commit27e3ca71f920083e8bf1599facc2cc4638f8efcf (patch)
tree2b1da538e01c110df510ab58b766106124abfc48 /service/pixelated/adapter/services
parent82c16b35798537302fecbf40ed76b0051e23ddb3 (diff)
Return 422 if deletion failed
This is needed for protecting against concurrent saves on drafts. --Issue #512
Diffstat (limited to 'service/pixelated/adapter/services')
-rw-r--r--service/pixelated/adapter/services/draft_service.py7
1 files changed, 4 insertions, 3 deletions
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)