summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJefferson Stachelski <jstachel@thoughtworks.com>2016-02-04 23:43:09 -0200
committerJefferson Stachelski <jstachel@thoughtworks.com>2016-02-04 23:54:15 -0200
commit92f0e9887a216e0ec82355941655d3deebf2d422 (patch)
tree8b8e2deac6b199f623ae4db758dd029d4de98397
parent0e443ce40e684c095285efb774fefe3a824413d7 (diff)
Issue #549 - Implemented remove attachment in server side
-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 401fb321..9e4e8a5f 100644
--- a/service/pixelated/resources/attachments_resource.py
+++ b/service/pixelated/resources/attachments_resource.py
@@ -72,7 +72,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):