diff options
| author | Bruno Wagner Goncalves and Patrick Maia <pixelated-team+bwagner+pmaia@thoughtworks.com> | 2014-08-14 12:11:48 -0300 |
|---|---|---|
| committer | Patrick Maia <patrickjourdanmaia@gmail.com> | 2014-08-14 12:11:48 -0300 |
| commit | 5b2538cd3cd5cb012021b7043a2ef427b7ace89a (patch) | |
| tree | 027387ad96f09ce96a03e12abaa66731009c2250 /service/app | |
| parent | 998f8d33fcef28c90365cd58f0820683e518e398 (diff) | |
Update mail with new tags should be working now
Diffstat (limited to 'service/app')
| -rw-r--r-- | service/app/adapter/mail_service.py | 17 | ||||
| -rw-r--r-- | service/app/pixelated_user_agent.py | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/service/app/adapter/mail_service.py b/service/app/adapter/mail_service.py index b5ae09f2..fb5b52c3 100644 --- a/service/app/adapter/mail_service.py +++ b/service/app/adapter/mail_service.py @@ -54,6 +54,23 @@ class MailService: def mails(self, query): return self.mailbox.messages or [] + def update_mail(self, dict_mail): + # Iterating over messages because messages.getUID() is not trustworthy + mail = None + for message in self.mailbox.messages: + if message.getUID() == dict_mail['ident']: + mail = PixelatedMail(message) + + new_tags = mail.update_tags(dict_mail['tags']) + + self._update_tag_list(new_tags) + + return mail + + def _update_tag_list(self, tags): + for tag in tags: + self.tags.add(tag) + def _switch_mailbox(self, name): mailbox = None if name in self.SPECIAL_BOXES: diff --git a/service/app/pixelated_user_agent.py b/service/app/pixelated_user_agent.py index 75e84c3c..2d0dc4b8 100644 --- a/service/app/pixelated_user_agent.py +++ b/service/app/pixelated_user_agent.py @@ -49,7 +49,8 @@ def save_draft_or_send(): @app.route('/mails', methods=['PUT']) def update_draft(): - ident = mail_service.save_draft(converter.to_mail(request.json, account)) + raw_mail = json.parse(request.json) + ident = mail_service.update_mail(raw_mail) return respond_json({'ident': ident}) |
