mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
These ones don't fix any bugs, because the mutable arg is never passed outside of the callable or mutated. But it's good practice to not use them in case those invariants are changed in the future.
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
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_unauthorized(message):
|
|
resp = HttpResponseUnauthorized("zulip")
|
|
resp.content = ujson.dumps({"result": "error",
|
|
"msg": message}) + "\n"
|
|
return resp
|
|
|
|
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=None, status=200):
|
|
content = {"result": res_type, "msg": msg}
|
|
if data is not None:
|
|
content.update(data)
|
|
return HttpResponse(content=ujson.dumps(content) + "\n",
|
|
content_type='application/json', status=status)
|
|
|
|
def json_success(data=None):
|
|
return json_response(data=data)
|
|
|
|
def json_error(msg, data=None, status=400):
|
|
return json_response(res_type="error", msg=msg, data=data, status=status)
|
|
|
|
def json_unhandled_exception():
|
|
return json_response(res_type="error", msg="Internal server error", status=500)
|