summaryrefslogtreecommitdiff
path: root/service/app/adapter/mail_service.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/app/adapter/mail_service.py')
-rw-r--r--service/app/adapter/mail_service.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/service/app/adapter/mail_service.py b/service/app/adapter/mail_service.py
index 32238973..a11825e0 100644
--- a/service/app/adapter/mail_service.py
+++ b/service/app/adapter/mail_service.py
@@ -1,6 +1,7 @@
import traceback
import sys
import os
+from twisted.internet import defer
from app.bitmask_libraries.config import LeapConfig
from app.bitmask_libraries.provider import LeapProvider
from app.bitmask_libraries.session import LeapSessionFactory
@@ -36,13 +37,22 @@ 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)
- return mail
+ return new_tags
def _update_tag_list(self, tags):
for tag in tags:
self.tags.add(tag)
+ def _update_flags(self, new_tags, mail_id):
+ new_tags_flag_name = ['tag_'+tag.name for tag in new_tags]
+ self.set_flags(mail_id, new_tags_flag_name)
+
+ def set_flags(self, mail_id, new_tags_flag_name):
+ observer = defer.Deferred()
+ self.mailbox.messages.set_flags(self.mailbox, [mail_id], tuple(new_tags_flag_name), 1, observer)
+
def mail(self, mail_id):
for message in self.mailbox.messages:
if message.getUID() == int(mail_id):