summaryrefslogtreecommitdiff
path: root/service/pixelated/resources/mails_resource.py
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2015-02-04 05:22:13 -0200
committerDuda Dornelles <ddornell@thoughtworks.com>2015-02-04 05:22:13 -0200
commita7beccf1e219c4e946bc8c90335683e2e6b20d01 (patch)
tree5bb7ccd865858d406fa1d5d905fdd2e9d901d307 /service/pixelated/resources/mails_resource.py
parent09f1ec352f4eb7ce4a1f97beb80887c22f70ce30 (diff)
Refactoring more of resource logic into service. No more search engine on mail(s) resource
Diffstat (limited to 'service/pixelated/resources/mails_resource.py')
-rw-r--r--service/pixelated/resources/mails_resource.py47
1 files changed, 14 insertions, 33 deletions
diff --git a/service/pixelated/resources/mails_resource.py b/service/pixelated/resources/mails_resource.py
index 68d0246a..77a47cda 100644
--- a/service/pixelated/resources/mails_resource.py
+++ b/service/pixelated/resources/mails_resource.py
@@ -11,60 +11,45 @@ from leap.common.events import (
class MailsUnreadResource(Resource):
isLeaf = True
- def __init__(self, mail_service, search_engine):
+ def __init__(self, mail_service):
Resource.__init__(self)
- self._search_engine = search_engine
self._mail_service = mail_service
def render_POST(self, request):
- content_dict = json.load(request.content)
- idents = content_dict.get('idents')
+ idents = json.load(request.content).get('idents')
for ident in idents:
- mail = self._mail_service.mark_as_unread(ident)
- self._search_engine.index_mail(mail)
+ self._mail_service.mark_as_unread(ident)
return respond_json(None, request)
class MailsReadResource(Resource):
isLeaf = True
- def __init__(self, mail_service, search_engine):
+ def __init__(self, mail_service):
Resource.__init__(self)
- self._search_engine = search_engine
self._mail_service = mail_service
def render_POST(self, request):
- content_dict = json.load(request.content)
- idents = content_dict.get('idents')
+ idents = json.load(request.content).get('idents')
for ident in idents:
- mail = self._mail_service.mark_as_read(ident)
- self._search_engine.index_mail(mail)
+ self._mail_service.mark_as_read(ident)
+
return respond_json(None, request)
class MailsDeleteResource(Resource):
isLeaf = True
- def __init__(self, mail_service, search_engine):
+ def __init__(self, mail_service):
Resource.__init__(self)
self._mail_service = mail_service
- self._search_engine = search_engine
def render_POST(self, request):
idents = json.loads(request.content.read())['idents']
for ident in idents:
- self._delete_mail(ident)
+ self._mail_service.delete_mail(ident)
return respond_json(None, request)
- def _delete_mail(self, mail_id):
- mail = self._mail_service.mail(mail_id)
- if mail.mailbox_name == 'TRASH':
- self._mail_service.delete_permanent(mail_id)
- self._search_engine.remove_from_index(mail_id)
- else:
- trashed_mail = self._mail_service.delete_mail(mail_id)
- self._search_engine.index_mail(trashed_mail)
-
class MailsResource(Resource):
@@ -72,20 +57,18 @@ class MailsResource(Resource):
def on_error(event):
delivery_error_mail = InputMail.delivery_error_template(delivery_address=event.content)
- delivery_error_mail = self._mail_service.mailboxes.inbox().add(delivery_error_mail)
- self._search_engine.index_mail(delivery_error_mail)
+ self._mail_service.mailboxes.inbox().add(delivery_error_mail)
register(signal=proto.SMTP_SEND_MESSAGE_ERROR, callback=on_error)
- def __init__(self, search_engine, mail_service, draft_service):
+ def __init__(self, mail_service, draft_service):
Resource.__init__(self)
- self.putChild('delete', MailsDeleteResource(mail_service, search_engine))
- self.putChild('read', MailsReadResource(mail_service, search_engine))
- self.putChild('unread', MailsUnreadResource(mail_service, search_engine))
+ self.putChild('delete', MailsDeleteResource(mail_service))
+ self.putChild('read', MailsReadResource(mail_service))
+ self.putChild('unread', MailsUnreadResource(mail_service))
self._draft_service = draft_service
self._mail_service = mail_service
- self._search_engine = search_engine
self._register_smtp_error_handler()
def render_GET(self, request):
@@ -116,9 +99,7 @@ class MailsResource(Resource):
if not self._mail_service.mail_exists(draft_id):
return respond_json("", request, status_code=422)
pixelated_mail = self._draft_service.update_draft(draft_id, _mail)
- self._search_engine.remove_from_index(draft_id)
else:
pixelated_mail = self._draft_service.create_draft(_mail)
- self._search_engine.index_mail(pixelated_mail)
return respond_json({'ident': pixelated_mail.ident}, request)