From 3802f0a55a383fa9314236e0d0905b963ea8f297 Mon Sep 17 00:00:00 2001 From: Jefferson Stachelski Date: Tue, 8 Sep 2015 22:22:57 -0300 Subject: Some progress on the issue #441 I added some comments and TODOs in some parts of the code where I think should be changed --- service/pixelated/adapter/mailstore/leap_mailstore.py | 18 ++++++++++++++++++ .../adapter/mailstore/searchable_mailstore.py | 2 ++ 2 files changed, 20 insertions(+) (limited to 'service/pixelated/adapter/mailstore') diff --git a/service/pixelated/adapter/mailstore/leap_mailstore.py b/service/pixelated/adapter/mailstore/leap_mailstore.py index a27ce5c4..6dad12b0 100644 --- a/service/pixelated/adapter/mailstore/leap_mailstore.py +++ b/service/pixelated/adapter/mailstore/leap_mailstore.py @@ -162,6 +162,24 @@ class LeapMail(Mail): return [recipient for recipient in recipients if recipient != InputMail.FROM_EMAIL_ADDRESS] + @property + def bounced(self): + # TODO: Must be implemented for the search engine identify bounced mails + return False + + @staticmethod + def from_dict(mail_dict): + # TODO: implement this method and also write tests for it + headers = {key.capitalize(): value for key, value in mail_dict.get('header', {}).items()} + headers['Date'] = date.iso_now() + body = mail_dict.get('body', '') + tags = set(mail_dict.get('tags', [])) + status = set(mail_dict.get('status', [])) + attachments = [] + + # mail_id, mailbox_name, headers=None, tags=set(), flags=set(), body=None, attachments=[] + return LeapMail(None, None, headers, tags, set(), body, attachments) + def _extract_filename(content_disposition): match = re.compile('.*name=\"(.*)\".*').search(content_disposition) diff --git a/service/pixelated/adapter/mailstore/searchable_mailstore.py b/service/pixelated/adapter/mailstore/searchable_mailstore.py index 0c5310eb..8ffc41b8 100644 --- a/service/pixelated/adapter/mailstore/searchable_mailstore.py +++ b/service/pixelated/adapter/mailstore/searchable_mailstore.py @@ -34,6 +34,8 @@ class SearchableMailStore(object): # implementes MailStore @defer.inlineCallbacks def add_mail(self, mailbox_name, mail): stored_mail = yield self._delegate.add_mail(mailbox_name, mail) + # the stored_mail dont't have a content type needed for identify + # that the email is bounced or not, but this header is setted on input_mail self._search_engine.index_mail(stored_mail) defer.returnValue(stored_mail) -- cgit v1.2.3