Switch to a multi-request/response API to make batching possible.

This commit is contained in:
Ian Gulliver
2014-05-06 13:38:40 -07:00
parent 0369266d60
commit cf05c0f620
6 changed files with 116 additions and 91 deletions

View File

@@ -36,7 +36,7 @@ def google_user_xsrf_protection(handler):
if not google_user:
return handler(self)
google_user_id = auth.Parse(self.request.get('google_user_id', None))
google_user_id = auth.Parse(self.request_json.get('google_user_id', None))
if (not google_user_id or
google_user_id != google_user.user_id()):
return {

View File

@@ -65,7 +65,7 @@ def session_required(handler):
@functools.wraps(handler)
def FindOrCreateSession(self):
client_key = auth.ParseKey(self.request.get('client_id', None))
client_key = auth.ParseKey(self.request_json.get('client_id', None))
# The hunt for a Profile begins.
if client_key:
@@ -77,7 +77,7 @@ def session_required(handler):
ret = {
'status': 'ok',
'response': handler(self),
'responses': handler(self),
}
if client_key != self.client.key():
# Tell the client that this changed

View File

@@ -25,6 +25,16 @@ from cosmopolite import config
from cosmopolite.lib import auth
def expects_json(handler):
@functools.wraps(handler)
def ParseInput(self):
self.request_json = json.load(self.request.body_file)
return handler(self)
return ParseInput
def returns_json(handler):
@functools.wraps(handler)