Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2012-08-21 15:23:32 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2012-08-21 15:23:32 (GMT)
commit421888b6fb38b6eb773998d40a6011edd36e5279 (patch)
treecf42c1a12a5cc4bb33570ae61f72ecd1897882cd
parentd69b3b41364e6f57ce04442720da4935dd414acb (diff)
Support JS callbacks in router
-rw-r--r--sugar_network/node/router.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/sugar_network/node/router.py b/sugar_network/node/router.py
index d4b5c35..57ffa1d 100644
--- a/sugar_network/node/router.py
+++ b/sugar_network/node/router.py
@@ -46,6 +46,10 @@ class Router(object):
response = _Response()
result = None
+ js_callback = None
+ if 'callback' in request:
+ js_callback = request.pop('callback')
+
try:
request.principal = self._authenticate(request)
result = self._cp.call(request, response)
@@ -87,6 +91,8 @@ class Router(object):
if not result_streamed and response.content_type == 'application/json':
result = json.dumps(result)
+ if js_callback:
+ result = '%s(%s);' % (js_callback, result)
response.content_length = len(result)
_logger.debug('Called %s: response=%r result=%r streamed=%r',