summaryrefslogtreecommitdiff
path: root/service/pixelated/resources/mails_resource.py
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-07-14 22:09:44 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:22 +0200
commit53b8653ead645247b1afc24645db3ea868d46378 (patch)
tree9a5697ee7a5128291abdac684d59eed83d80f94a /service/pixelated/resources/mails_resource.py
parent60e5e19b60ad772c5f53f942b0e974f188385e2e (diff)
/mails resource handle deferreds
Diffstat (limited to 'service/pixelated/resources/mails_resource.py')
-rw-r--r--service/pixelated/resources/mails_resource.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/service/pixelated/resources/mails_resource.py b/service/pixelated/resources/mails_resource.py
index cddaa0ec..21ce01a2 100644
--- a/service/pixelated/resources/mails_resource.py
+++ b/service/pixelated/resources/mails_resource.py
@@ -1,6 +1,7 @@
import json
from pixelated.adapter.services.mail_sender import SMTPDownException
from pixelated.adapter.model.mail import InputMail
+from twisted.web.server import NOT_DONE_YET
from pixelated.resources import respond_json, respond_json_deferred
from twisted.web.resource import Resource
from twisted.web import server
@@ -90,16 +91,18 @@ class MailsResource(Resource):
def render_GET(self, request):
query, window_size, page = request.args.get('q')[0], request.args.get('w')[0], request.args.get('p')[0]
- mails, total = self._mail_service.mails(query, window_size, page)
+ d, total = self._mail_service.mails(query, window_size, page)
- response = {
+ response = lambda mails: {
"stats": {
"total": total,
},
"mails": [mail.as_dict() for mail in mails]
}
+ d.addCallback(response)
+ d.addCallback(lambda res: respond_json_deferred(res, request))
- return respond_json(response, request)
+ return NOT_DONE_YET
def render_POST(self, request):
content_dict = json.loads(request.content.read())