summary refs log tree commit diff
path: root/synapse/http/server.py
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2014-12-11 18:35:05 +0000
committerPaul "LeoNerd" Evans <paul@matrix.org>2014-12-11 18:35:05 +0000
commit0b700233737adfa3c6558e988822e7f9ee31ca39 (patch)
treeeac8aff9fb9f58da245c9c3e7a80fa13ac5e1eb1 /synapse/http/server.py
parentMerge remote-tracking branch 'origin' into typing_notifications (diff)
parentMerge branch 'develop' of github.com:matrix-org/synapse into develop (diff)
downloadsynapse-0b700233737adfa3c6558e988822e7f9ee31ca39.tar.xz
Merge branch 'develop' into typing_notifications
Diffstat (limited to 'synapse/http/server.py')
-rw-r--r--synapse/http/server.py21
1 files changed, 14 insertions, 7 deletions
diff --git a/synapse/http/server.py b/synapse/http/server.py
index 8024ff5bde..02277c4998 100644
--- a/synapse/http/server.py
+++ b/synapse/http/server.py
@@ -166,14 +166,10 @@ class JsonResource(HttpServer, resource.Resource):
                 request)
             return
 
-        if not self._request_user_agent_is_curl(request):
-            json_bytes = encode_canonical_json(response_json_object)
-        else:
-            json_bytes = encode_pretty_printed_json(response_json_object)
-
         # TODO: Only enable CORS for the requests that need it.
-        respond_with_json_bytes(request, code, json_bytes, send_cors=True,
-                                response_code_message=response_code_message)
+        respond_with_json(request, code, response_json_object, send_cors=True,
+                          response_code_message=response_code_message,
+                          pretty_print=self._request_user_agent_is_curl)
 
     @staticmethod
     def _request_user_agent_is_curl(request):
@@ -202,6 +198,17 @@ class RootRedirect(resource.Resource):
         return resource.Resource.getChild(self, name, request)
 
 
+def respond_with_json(request, code, json_object, send_cors=False,
+                      response_code_message=None, pretty_print=False):
+    if not pretty_print:
+        json_bytes = encode_pretty_printed_json(json_object)
+    else:
+        json_bytes = encode_canonical_json(json_object)
+
+    return respond_with_json_bytes(request, code, json_bytes, send_cors,
+                                   response_code_message=response_code_message)
+
+
 def respond_with_json_bytes(request, code, json_bytes, send_cors=False,
                             response_code_message=None):
     """Sends encoded JSON in response to the given request.