mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 15:03:34 +00:00
This saves something like 15ms on our 1000 message get_old_messages queries, and will save even more when we start sending JSON dumps into our memcached system. We need to install python-ujson on servers and dev instances before pushing this to prod. (imported from commit 373690b7c056d00d2299a7588a33f025104bfbca)
31 lines
984 B
Python
31 lines
984 B
Python
from __future__ import absolute_import
|
|
|
|
from django.http import HttpResponse, HttpResponseNotAllowed
|
|
import ujson
|
|
|
|
class HttpResponseUnauthorized(HttpResponse):
|
|
status_code = 401
|
|
|
|
def __init__(self, realm):
|
|
HttpResponse.__init__(self)
|
|
self["WWW-Authenticate"] = 'Basic realm="%s"' % realm
|
|
|
|
def json_method_not_allowed(methods):
|
|
resp = HttpResponseNotAllowed(methods)
|
|
resp.content = ujson.dumps({"result": "error",
|
|
"msg": "Method Not Allowed",
|
|
"allowed_methods": methods})
|
|
return resp
|
|
|
|
def json_response(res_type="success", msg="", data={}, status=200):
|
|
content = {"result": res_type, "msg": msg}
|
|
content.update(data)
|
|
return HttpResponse(content=ujson.dumps(content),
|
|
mimetype='application/json', status=status)
|
|
|
|
def json_success(data={}):
|
|
return json_response(data=data)
|
|
|
|
def json_error(msg, data={}, status=400):
|
|
return json_response(res_type="error", msg=msg, data=data, status=status)
|