summaryrefslogtreecommitdiff
path: root/service/pixelated/adapter/mail_service.py
diff options
context:
space:
mode:
authorPatrick Maia and Victor Shyba <pixelated-team+pmaia+vshyba@thoughtworks.com>2014-08-27 20:28:31 +0000
committerPatrick Maia <pmaia@thoughtworks.com>2014-08-27 20:28:47 +0000
commitee501988463fa09884987487828cda07fbe2b264 (patch)
tree6884e0f3f89ec707b54c3fd52dd39340863e4c9b /service/pixelated/adapter/mail_service.py
parent2823137cf813d227ff7110f92e0885027e3e959e (diff)
#51 - sets leap mailbox flags on mail tags update
Diffstat (limited to 'service/pixelated/adapter/mail_service.py')
-rw-r--r--service/pixelated/adapter/mail_service.py19
1 files changed, 9 insertions, 10 deletions
diff --git a/service/pixelated/adapter/mail_service.py b/service/pixelated/adapter/mail_service.py
index 1f4279e7..d9c30e51 100644
--- a/service/pixelated/adapter/mail_service.py
+++ b/service/pixelated/adapter/mail_service.py
@@ -21,8 +21,8 @@ from pixelated.bitmask_libraries.config import LeapConfig
from pixelated.bitmask_libraries.provider import LeapProvider
from pixelated.bitmask_libraries.session import LeapSessionFactory
from pixelated.bitmask_libraries.auth import LeapCredentials
-from pixelated.adapter.pixelated_mail import PixelatedMail
from pixelated.adapter.pixelated_mailbox import PixelatedMailbox
+from pixelated.adapter.tag import Tag
class MailService:
@@ -55,20 +55,19 @@ class MailService:
def update_tags(self, mail_id, new_tags):
mail = self.mail(mail_id)
new_tags = mail.update_tags(new_tags)
- self._update_flags(new_tags, mail_id)
- self._update_tag_list(new_tags)
+ self._update_mail_flags(new_tags, mail_id)
+ self._update_mailbox_tags(new_tags)
return new_tags
- def _update_tag_list(self, tags):
- for tag in tags:
- pass
- # self.tags.add(tag)
+ def _update_mailbox_tags(self, str_tags):
+ tags = [Tag(str_tag) for str_tag in str_tags]
+ self.mailbox.update_tags(tags)
- def _update_flags(self, new_tags, mail_id):
+ def _update_mail_flags(self, new_tags, mail_id):
new_tags_flag_name = ['tag_' + tag.name for tag in new_tags if tag.name not in PixelatedMailbox.SPECIAL_TAGS]
- self.set_flags(mail_id, new_tags_flag_name)
+ self._set_mail_flags(mail_id, new_tags_flag_name)
- def set_flags(self, mail_id, new_tags_flag_name):
+ def _set_mail_flags(self, mail_id, new_tags_flag_name):
observer = defer.Deferred()
leap_mailbox = self.account.getMailbox(self.mailbox_name)
self.mailbox.messages.set_flags(leap_mailbox, [mail_id], tuple(new_tags_flag_name), 1, observer)