summaryrefslogtreecommitdiff
path: root/py-fake-service/app/adapter/mail_service.py
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-08-12 16:45:26 -0300
committerDuda Dornelles <ddornell@thoughtworks.com>2014-08-12 18:50:20 -0300
commitbf7b6aa193188c95c50cbc9d24f4be56afa6dc6f (patch)
treea7774f148defd799f2e24547fca0e22b63db681c /py-fake-service/app/adapter/mail_service.py
parent27e07e05d97b577ef6b62b74ca7daebafd41db98 (diff)
sending mails in py-fake-service
Diffstat (limited to 'py-fake-service/app/adapter/mail_service.py')
-rw-r--r--py-fake-service/app/adapter/mail_service.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/py-fake-service/app/adapter/mail_service.py b/py-fake-service/app/adapter/mail_service.py
index c6bd3ab4..3d12feb5 100644
--- a/py-fake-service/app/adapter/mail_service.py
+++ b/py-fake-service/app/adapter/mail_service.py
@@ -4,6 +4,7 @@ import mailbox
from tagsset import TagsSet
from mailset import MailSet
from contacts import Contacts
+from mail import Mail
class MailService:
MAILSET_PATH = os.path.join(os.environ['HOME'], 'mailsets', 'mediumtagged')
@@ -28,7 +29,7 @@ class MailService:
def mails(self, query, page, window_size):
mails = self.mailset.values()
mails = [mail for mail in mails if query.test(mail)]
- return mails
+ return sorted(mails, key=lambda mail: mail.date, reverse=True)
def mail(self, mail_id):
return self.mailset.get(mail_id)
@@ -60,7 +61,18 @@ class MailService:
mail.tags = new_tags
-
+ def send(self, mail):
+ mail = Mail.from_json(mail)
+ self.mailset.update(mail)
+ self.tagsset.increment_tag_total_count('sent')
+ self.tagsset.decrement_tag_total_count('drafts')
+ return mail.ident
+
+ def save_draft(self, mail):
+ mail = self.mailset.add_draft(Mail.from_json(mail))
+ return mail.ident
+
+