summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter/mailstore/searchable_mailstore.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/adapter/mailstore/searchable_mailstore.py')
-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)