From cd831d1dfc42c2a0d292fe5c1b7f497b2ca393eb Mon Sep 17 00:00:00 2001 From: Giovane Date: Thu, 14 Jan 2016 18:34:00 -0200 Subject: Removes InputMail.FROM_EMAIL_ADDRESS constant #578 - Created the replier component to generate the reply dict for the email. This was needed to decouple the InputMail from the need to know who is the logged user. --- service/pixelated/resources/mail_resource.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'service/pixelated/resources/mail_resource.py') diff --git a/service/pixelated/resources/mail_resource.py b/service/pixelated/resources/mail_resource.py index 14cb047a..3d151777 100644 --- a/service/pixelated/resources/mail_resource.py +++ b/service/pixelated/resources/mail_resource.py @@ -1,5 +1,6 @@ import json from pixelated.resources import respond_json, respond_json_deferred +from pixelated.support import replier from twisted.web.resource import Resource from twisted.web.server import NOT_DONE_YET from twisted.python.log import err @@ -36,8 +37,18 @@ class Mail(Resource): self._mail_service = mail_service def render_GET(self, request): + def populate_reply(mail): + mail_dict = mail.as_dict() + current_user = self._mail_service.account_email + sender = mail.headers.get('Reply-to', mail.headers.get('From')) + to = mail.headers.get('To', []) + ccs = mail.headers.get('Cc', []) + mail_dict['replying'] = replier.generate_recipients(sender, to, ccs, current_user) + return mail_dict + d = self._mail_service.mail(self._mail_id) - d.addCallback(lambda mail: respond_json_deferred(mail.as_dict(), request)) + d.addCallback(lambda mail: populate_reply(mail)) + d.addCallback(lambda mail_dict: respond_json_deferred(mail_dict, request)) return NOT_DONE_YET def render_DELETE(self, request): -- cgit v1.2.3