summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/adapter')
-rw-r--r--service/pixelated/adapter/mail.py2
-rw-r--r--service/pixelated/adapter/soledad_querier.py14
2 files changed, 11 insertions, 5 deletions
diff --git a/service/pixelated/adapter/mail.py b/service/pixelated/adapter/mail.py
index ebdcf02b..f21ed2ef 100644
--- a/service/pixelated/adapter/mail.py
+++ b/service/pixelated/adapter/mail.py
@@ -99,7 +99,7 @@ class InputMail(Mail):
def ident(self):
return self._get_chash()
- def _get_for_save(self, next_uid, mailbox):
+ def get_for_save(self, next_uid, mailbox):
docs = [self._fdoc(next_uid, mailbox), self._hdoc()]
docs.extend([m for m in self._cdocs()])
return docs
diff --git a/service/pixelated/adapter/soledad_querier.py b/service/pixelated/adapter/soledad_querier.py
index ce75750a..796e8321 100644
--- a/service/pixelated/adapter/soledad_querier.py
+++ b/service/pixelated/adapter/soledad_querier.py
@@ -62,9 +62,15 @@ class SoledadQuerier:
if len(fdocs_chash) == 0:
return []
- fdocs_hdocs = [(f[0], self.soledad.get_from_index('by-type-and-contenthash', 'head', f[1])[0]) for f in fdocs_chash]
- fdocs_hdocs_phash = [(f[0], f[1], f[1].content.get('body')) for f in fdocs_hdocs]
- fdocs_hdocs_bdocs = [(f[0], f[1], self.soledad.get_from_index('by-type-and-payloadhash', 'cnt', f[2])[0]) for f in fdocs_hdocs_phash]
+ fdocs_hdocs = []
+ for fdoc, chash in fdocs_chash:
+ hdoc = self.soledad.get_from_index('by-type-and-contenthash', 'head', chash)
+ if len(hdoc) == 0:
+ continue
+ fdocs_hdocs.append((fdoc, hdoc[0]))
+
+ fdocs_hdocs_bodyphash = [(f[0], f[1], f[1].content.get('body')) for f in fdocs_hdocs]
+ fdocs_hdocs_bdocs = [(f[0], f[1], self.soledad.get_from_index('by-type-and-payloadhash', 'cnt', f[2])[0]) for f in fdocs_hdocs_bodyphash]
return [PixelatedMail.from_soledad(*raw_mail, soledad_querier=self) for raw_mail in fdocs_hdocs_bdocs]
def save_mail(self, mail):
@@ -77,7 +83,7 @@ class SoledadQuerier:
mbox = [m for m in self.soledad.get_from_index('by-type', 'mbox') if m.content['mbox'] == 'INBOX'][0]
uid = mbox.content['lastuid'] + 1
- new_docs = [self.soledad.create_doc(doc) for doc in mail._get_for_save(next_uid=uid, mailbox=mailbox_name)]
+ new_docs = [self.soledad.create_doc(doc) for doc in mail.get_for_save(next_uid=uid, mailbox=mailbox_name)]
mbox.content['lastuid'] = uid
self.soledad.put_doc(mbox)