diff options
author | Giovane <giovaneliberato@gmail.com> | 2016-01-14 18:34:00 -0200 |
---|---|---|
committer | Bruno Wagner <bwagner@riseup.net> | 2016-01-15 11:11:55 -0200 |
commit | cd831d1dfc42c2a0d292fe5c1b7f497b2ca393eb (patch) | |
tree | 4069da65211b163f7718b8628349976748a6d0ee /service/pixelated/resources/mail_resource.py | |
parent | 36972dc55f64100f4e056130cc1d32a266785a41 (diff) |
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.
Diffstat (limited to 'service/pixelated/resources/mail_resource.py')
-rw-r--r-- | service/pixelated/resources/mail_resource.py | 13 |
1 files changed, 12 insertions, 1 deletions
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): |