diff options
Diffstat (limited to 'service/pixelated/adapter/services')
-rw-r--r-- | service/pixelated/adapter/services/draft_service.py | 7 | ||||
-rw-r--r-- | service/pixelated/adapter/services/mail_service.py | 4 | ||||
-rw-r--r-- | service/pixelated/adapter/services/mailboxes.py | 14 |
3 files changed, 16 insertions, 9 deletions
diff --git a/service/pixelated/adapter/services/draft_service.py b/service/pixelated/adapter/services/draft_service.py index df295eec..c8df0a05 100644 --- a/service/pixelated/adapter/services/draft_service.py +++ b/service/pixelated/adapter/services/draft_service.py @@ -22,13 +22,10 @@ class DraftService(object): self._mailboxes = mailboxes def create_draft(self, input_mail): - pixelated_mail = self._drafts().add(input_mail) + pixelated_mail = self._mailboxes.drafts.add(input_mail) return pixelated_mail def update_draft(self, ident, input_mail): pixelated_mail = self.create_draft(input_mail) - self._drafts().remove(ident) + self._mailboxes.drafts.remove(ident) return pixelated_mail - - def _drafts(self): - return self._mailboxes.drafts() diff --git a/service/pixelated/adapter/services/mail_service.py b/service/pixelated/adapter/services/mail_service.py index e392bc44..4e6b6aa8 100644 --- a/service/pixelated/adapter/services/mail_service.py +++ b/service/pixelated/adapter/services/mail_service.py @@ -76,8 +76,8 @@ class MailService(object): def move_to_sent(self, last_draft_ident, mail): if last_draft_ident: - self.mailboxes.drafts().remove(last_draft_ident) - return self.mailboxes.sent().add(mail) + self.mailboxes.drafts.remove(last_draft_ident) + return self.mailboxes.sent.add(mail) def mark_as_read(self, mail_id): mail = self.mail(mail_id) diff --git a/service/pixelated/adapter/services/mailboxes.py b/service/pixelated/adapter/services/mailboxes.py index e9fe6ce5..c2b61ca8 100644 --- a/service/pixelated/adapter/services/mailboxes.py +++ b/service/pixelated/adapter/services/mailboxes.py @@ -15,6 +15,7 @@ # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. from pixelated.adapter.services.mailbox import Mailbox from pixelated.adapter.listeners.mailbox_indexer_listener import MailboxIndexerListener +from pixelated.adapter.model.mail import welcome_mail class Mailboxes(object): @@ -33,15 +34,19 @@ class Mailboxes(object): MailboxIndexerListener.listen(self.account, mailbox_name, self.querier) return Mailbox.create(mailbox_name, self.querier, self.search_engine) + @property def inbox(self): return self._create_or_get('INBOX') + @property def drafts(self): return self._create_or_get('DRAFTS') + @property def trash(self): return self._create_or_get('TRASH') + @property def sent(self): return self._create_or_get('SENT') @@ -49,10 +54,10 @@ class Mailboxes(object): return [self._create_or_get(leap_mailbox_name) for leap_mailbox_name in self.account.mailboxes] def move_to_trash(self, mail_id): - return self._move_to(mail_id, self.trash()) + return self._move_to(mail_id, self.trash) def move_to_inbox(self, mail_id): - return self._move_to(mail_id, self.inbox()) + return self._move_to(mail_id, self.inbox) def _move_to(self, mail_id, mailbox): mail = self.querier.mail(mail_id) @@ -62,3 +67,8 @@ class Mailboxes(object): def mail(self, mail_id): return self.querier.mail(mail_id) + + def add_welcome_mail_for_fresh_user(self): + if self.inbox.fresh: + mail = welcome_mail() + self.inbox.add(mail) |