diff options
author | Duda Dornelles <ddornell@thoughtworks.com> | 2014-12-23 16:40:08 -0200 |
---|---|---|
committer | Duda Dornelles <ddornell@thoughtworks.com> | 2014-12-23 16:40:08 -0200 |
commit | d6fcbb1fbe3d791ed5da6935b9cc6190b56f01cb (patch) | |
tree | aeadd1cc50000a1dcab7434e0024bf652c3747a0 /service/pixelated/controllers | |
parent | 667c75e1af204dec1ab6b64c575ff17ffa2458aa (diff) |
#216 when trying to save a draft too fast (before the previous version is saved) simply ignore the attempt
Diffstat (limited to 'service/pixelated/controllers')
-rw-r--r-- | service/pixelated/controllers/mails_controller.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/service/pixelated/controllers/mails_controller.py b/service/pixelated/controllers/mails_controller.py index 9d649a1f..29e25d76 100644 --- a/service/pixelated/controllers/mails_controller.py +++ b/service/pixelated/controllers/mails_controller.py @@ -15,6 +15,8 @@ # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. import json +import random +import time from pixelated.adapter.model.mail import InputMail from pixelated.controllers import respond_json @@ -105,11 +107,15 @@ class MailsController: return respond_json(mail.as_dict(), request) def update_draft(self, request): + if bool(random.getrandbits(1)): + time.sleep(3) content_dict = json.loads(request.content.read()) _mail = InputMail.from_dict(content_dict) draft_id = content_dict.get('ident') if draft_id: + if not self._mail_service.mail_exists(draft_id): + return respond_json("", request, status_code=422) pixelated_mail = self._draft_service.update_draft(draft_id, _mail) self._search_engine.remove_from_index(draft_id) else: |