summaryrefslogtreecommitdiff
path: root/service/pixelated/resources/mail_resource.py
diff options
context:
space:
mode:
authorGiovane <giovaneliberato@gmail.com>2016-01-14 18:34:00 -0200
committerBruno Wagner <bwagner@riseup.net>2016-01-15 11:11:55 -0200
commitcd831d1dfc42c2a0d292fe5c1b7f497b2ca393eb (patch)
tree4069da65211b163f7718b8628349976748a6d0ee /service/pixelated/resources/mail_resource.py
parent36972dc55f64100f4e056130cc1d32a266785a41 (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.py13
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):