summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNavaL <ayoyo@thoughtworks.com>2016-02-12 14:54:43 -0200
committerNavaL <ayoyo@thoughtworks.com>2016-02-12 14:54:43 -0200
commite889bb5c34d4fcfa0f798134771e9dcb3ab062f6 (patch)
tree20aea584df2726aadcf1f913b3d458841254eec8
parent6775e960ae327312f715618a6e5b3f47c51d0fa1 (diff)
Revert "Revert "Issue #549 - Implemented remove attachment in server side""
This reverts commit 91223543207c4a56370ff609df9912a5b11262d7.
-rw-r--r--service/pixelated/adapter/services/mail_service.py3
-rw-r--r--service/pixelated/resources/attachments_resource.py13
2 files changed, 13 insertions, 3 deletions
diff --git a/service/pixelated/adapter/services/mail_service.py b/service/pixelated/adapter/services/mail_service.py
index 5ec3a298..d2506dcf 100644
--- a/service/pixelated/adapter/services/mail_service.py
+++ b/service/pixelated/adapter/services/mail_service.py
@@ -152,6 +152,5 @@ class MailService(object):
def delete_permanent(self, mail_id):
yield self.mail_store.delete_mail(mail_id)
- @defer.inlineCallbacks
def delete_attachment(self, attachment_id):
- yield self.attachment_store.delete_attachment(attachment_id)
+ return self.attachment_store.delete_attachment(attachment_id)
diff --git a/service/pixelated/resources/attachments_resource.py b/service/pixelated/resources/attachments_resource.py
index db8b4df1..da455f98 100644
--- a/service/pixelated/resources/attachments_resource.py
+++ b/service/pixelated/resources/attachments_resource.py
@@ -73,7 +73,18 @@ class AttachmentResource(Resource):
return match.group(1)
def render_DELETE(self, request):
- self.mail_service.delete_attachment(self.attachment_id)
+ def success(_):
+ response_json = {"ident": self.attachment_id}
+ respond_json_deferred(response_json, request, status_code=200)
+
+ def failure(err):
+ request.code = 500
+ request.finish()
+
+ d = self.mail_service.delete_attachment(self.attachment_id)
+ d.addCallback(success)
+ d.addErrback(failure)
+ return server.NOT_DONE_YET
class AttachmentsResource(BaseResource):