summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter/soledad_querier.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/adapter/soledad_querier.py')
-rw-r--r--service/pixelated/adapter/soledad_querier.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/service/pixelated/adapter/soledad_querier.py b/service/pixelated/adapter/soledad_querier.py
index 16196e2a..179d10f1 100644
--- a/service/pixelated/adapter/soledad_querier.py
+++ b/service/pixelated/adapter/soledad_querier.py
@@ -44,6 +44,17 @@ class SoledadQuerier:
new_docs = [self.soledad.create_doc(doc) for doc in mail._get_for_save(next_uid=uid)]
self._update_index(new_docs)
+ def mail(self, ident):
+ fdoc = self.soledad.get_from_index('by-type-and-contenthash', 'flags', ident)[0]
+ hdoc = self.soledad.get_from_index('by-type-and-contenthash', 'head', ident)[0]
+ bdoc = self.soledad.get_from_index('by-type-and-payloadhash', 'cnt', hdoc.content['body'])[0]
+ return PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self)
+
+ def remove_mail(self, mail):
+ _mail = self.mail(mail.ident)
+ self.soledad.delete_doc(_mail.bdoc)
+ self.soledad.delete_doc(_mail.hdoc)
+ self.soledad.delete_doc(_mail.fdoc)
def _next_uid_for_mailbox(self, mailbox_name):
mails = self.all_mails_by_mailbox(mailbox_name)