summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter/pixelated_mail.py
diff options
context:
space:
mode:
authorBruno Wagner Goncalves <bwagner@thoughtworks.com>2014-09-23 15:35:36 -0300
committerBruno Wagner Goncalves <bwagner@thoughtworks.com>2014-09-23 15:35:36 -0300
commitad94610bfdcd7442ba8107e14b823c9db2e24bf7 (patch)
tree6af3e52035e3b52b5e8852ba619cdadcfbc6c879 /service/pixelated/adapter/pixelated_mail.py
parent620a75e272f149ca4408dd46f67240cf0c2de8ec (diff)
Added basic mail saving
Diffstat (limited to 'service/pixelated/adapter/pixelated_mail.py')
-rw-r--r--service/pixelated/adapter/pixelated_mail.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/service/pixelated/adapter/pixelated_mail.py b/service/pixelated/adapter/pixelated_mail.py
index 3ff392b0..60f8ea50 100644
--- a/service/pixelated/adapter/pixelated_mail.py
+++ b/service/pixelated/adapter/pixelated_mail.py
@@ -8,7 +8,7 @@
#
# Pixelated is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# MERCHANTABILITY or FITNESS FOR A PCULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
@@ -28,6 +28,7 @@ class PixelatedMail:
def __init__(self, tag_service=TagService.get_instance()):
self.tag_service = tag_service
self.mailbox_name = None
+ self.querier = SoledadQuerier.get_instance()
@staticmethod
def from_soledad(fdoc, hdoc, bdoc):
@@ -73,6 +74,9 @@ class PixelatedMail:
def is_recent(self):
return Status('recent') in self.status
+ def save(self):
+ return self.querier.save_mail(self)
+
def set_from(self, _from):
self.headers['from'] = [_from]
@@ -99,12 +103,12 @@ class PixelatedMail:
self.update_tags(set([]))
def update_tags(self, tags):
- # old_tags = self.tags
- # self.tags = tags
- # removed = old_tags.difference(tags)
- # added = tags.difference(old_tags)
- # self._persist_mail_tags(tags)
- # self.tag_service.notify_tags_updated(added, removed, self.ident)
+ old_tags = self.tags
+ self.tags = tags
+ removed = old_tags.difference(tags)
+ added = tags.difference(old_tags)
+ self._persist_mail_tags(tags)
+ self.tag_service.notify_tags_updated(added, removed, self.ident)
return self.tags
def mark_as_read(self):
@@ -120,10 +124,8 @@ class PixelatedMail:
pass
def _persist_mail_tags(self, current_tags):
- # hdoc = self.leap_mail.hdoc
- # hdoc.content['headers']['X-Tags'] = json.dumps(list(current_tags))
- # self.leap_mail._soledad.put_doc(hdoc)
- pass
+ self.hdoc.content['headers']['X-Tags'] = json.dumps(list(current_tags))
+ self.save()
def has_tag(self, tag):
return tag in self.tags
@@ -186,3 +188,6 @@ def from_dict(mail_dict):
mail.tags = set(mail_dict.get('tags', []))
mail.status = set(mail_dict.get('status', []))
return mail
+
+
+from pixelated.adapter.soledad_querier import SoledadQuerier