summaryrefslogtreecommitdiff
path: root/service/pixelated/controllers
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-12-23 16:40:08 -0200
committerDuda Dornelles <ddornell@thoughtworks.com>2014-12-23 16:40:08 -0200
commitd6fcbb1fbe3d791ed5da6935b9cc6190b56f01cb (patch)
treeaeadd1cc50000a1dcab7434e0024bf652c3747a0 /service/pixelated/controllers
parent667c75e1af204dec1ab6b64c575ff17ffa2458aa (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.py6
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: