diff options
Diffstat (limited to 'service/pixelated/adapter/soledad_querier.py')
-rw-r--r-- | service/pixelated/adapter/soledad_querier.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/service/pixelated/adapter/soledad_querier.py b/service/pixelated/adapter/soledad_querier.py index 952c0606..bdfc28fe 100644 --- a/service/pixelated/adapter/soledad_querier.py +++ b/service/pixelated/adapter/soledad_querier.py @@ -1,10 +1,14 @@ from pixelated.adapter.pixelated_mail import PixelatedMail - class SoledadQuerier: - def __init__(self, soledad): - self.soledad = soledad + instance = None + + @classmethod + def get_instance(cls): + if not cls.instance: + cls.instance = SoledadQuerier() + return cls.instance def all_mails(self): fdocs_chash = [(fdoc, fdoc.content['chash']) for fdoc in self.soledad.get_from_index('by-type', 'flags')] @@ -19,3 +23,8 @@ class SoledadQuerier: 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] return [PixelatedMail.from_soledad(*raw_mail) for raw_mail in fdocs_hdocs_bdocs] + + def save_mail(self, mail): + self.soledad.put_doc(mail.fdoc) + self.soledad.put_doc(mail.hdoc) + self.soledad.put_doc(mail.bdoc) |