summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter/mailstore
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-08-30 17:53:17 -0300
committerVictor Shyba <victor.shyba@gmail.com>2015-08-30 17:53:17 -0300
commit97b50f5b886928c70edcbcea149ced10f7065f19 (patch)
tree320b7e75096a5b52c0fe672920cf66a1fff08459 /service/pixelated/adapter/mailstore
parent386398020f172be82bf27dd03c509e91c7e2a6d8 (diff)
[refactor] Move search mails into searchable_mailstore
This is needed in order to be able to remove search engine from mail_service. As #430
Diffstat (limited to 'service/pixelated/adapter/mailstore')
-rw-r--r--service/pixelated/adapter/mailstore/searchable_mailstore.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/service/pixelated/adapter/mailstore/searchable_mailstore.py b/service/pixelated/adapter/mailstore/searchable_mailstore.py
index 0c5310eb..d53f13d7 100644
--- a/service/pixelated/adapter/mailstore/searchable_mailstore.py
+++ b/service/pixelated/adapter/mailstore/searchable_mailstore.py
@@ -32,6 +32,18 @@ class SearchableMailStore(object): # implementes MailStore
setattr(cls, method_name, delegator)
@defer.inlineCallbacks
+ def search_mails(self, query, window_size, page):
+ mail_ids, total = self._search_engine.search(query, window_size, page)
+
+ try:
+ mails = yield self.get_mails(mail_ids)
+ defer.returnValue((mails, total))
+ except Exception, e:
+ import traceback
+ traceback.print_exc()
+ raise
+
+ @defer.inlineCallbacks
def add_mail(self, mailbox_name, mail):
stored_mail = yield self._delegate.add_mail(mailbox_name, mail)
self._search_engine.index_mail(stored_mail)