From c9caf2f49ae09c7ce76022b63ed9047b37d71ffb Mon Sep 17 00:00:00 2001 From: Jefferson Stachelski Date: Fri, 13 Nov 2015 11:19:25 -0200 Subject: Issue #523 - Created an archive mail button --- service/pixelated/resources/mails_resource.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'service/pixelated/resources/mails_resource.py') diff --git a/service/pixelated/resources/mails_resource.py b/service/pixelated/resources/mails_resource.py index 499610de..f65041f5 100644 --- a/service/pixelated/resources/mails_resource.py +++ b/service/pixelated/resources/mails_resource.py @@ -94,6 +94,23 @@ class MailsRecoverResource(Resource): return NOT_DONE_YET +class MailsArchiveResource(Resource): + + def __init__(self, mail_service): + Resource.__init__(self) + self._mail_service = mail_service + + def render_POST(self, request): + idents = json.loads(request.content.read())['idents'] + deferreds = [] + for ident in idents: + deferreds.append(self._mail_service.archive_mail(ident)) + d = defer.gatherResults(deferreds, consumeErrors=True) + d.addCallback(lambda _: respond_json_deferred({'successMessage': 'Your message was archived'}, request)) + d.addErrback(lambda _: respond_json_deferred(None, request, status_code=500)) + return NOT_DONE_YET + + class MailsResource(Resource): def _register_smtp_error_handler(self): @@ -108,6 +125,7 @@ class MailsResource(Resource): Resource.__init__(self) self.putChild('delete', MailsDeleteResource(mail_service)) self.putChild('recover', MailsRecoverResource(mail_service)) + self.putChild('archive', MailsArchiveResource(mail_service)) self.putChild('read', MailsReadResource(mail_service)) self.putChild('unread', MailsUnreadResource(mail_service)) -- cgit v1.2.3