106 lines
2.6 KiB
Python
106 lines
2.6 KiB
Python
from pear_admin.common.utils.response_code import ResponseCodeEnum
|
|
|
|
|
|
class JsonResponse:
|
|
"""
|
|
JsonResponse 响应体,统一返回前端的格式
|
|
"""
|
|
|
|
def __init__(self):
|
|
self._data = None
|
|
self._code = None
|
|
self._msg = None
|
|
self._status_code = None
|
|
self._error_code = 0
|
|
self._table_data = {}
|
|
|
|
def set_body(self, body):
|
|
self._data = body
|
|
return self
|
|
|
|
def set_msg(self, msg):
|
|
self._msg = msg
|
|
return self
|
|
|
|
def set_status_code(self, status_code):
|
|
# 设置响应状态码
|
|
self._status_code = status_code
|
|
return self
|
|
|
|
def set_error_code(self, error_code):
|
|
# 单独设置响应错误码
|
|
self._error_code = error_code
|
|
return self
|
|
|
|
def set_response_code_enum(self, code):
|
|
# 设置响应状态码
|
|
self._set_code(code)
|
|
return self
|
|
|
|
def set_table(self, pages):
|
|
self.set_body([item.json() for item in pages.items])
|
|
self._table_data.update(
|
|
{
|
|
"count": pages.total,
|
|
"page": pages.page,
|
|
"per_page": pages.per_page,
|
|
}
|
|
)
|
|
return self
|
|
|
|
def set_table_info(self, pages):
|
|
self._table_data.update(
|
|
{
|
|
"count": pages.total,
|
|
"page": pages.page,
|
|
"per_page": pages.per_page,
|
|
}
|
|
)
|
|
return self
|
|
|
|
def ok(self):
|
|
self._set_code(ResponseCodeEnum.ok)
|
|
return self._res_result()
|
|
|
|
def not_found(self):
|
|
self._set_code(ResponseCodeEnum.not_found)
|
|
return self._res_result()
|
|
|
|
def forbid(self):
|
|
self._set_code(ResponseCodeEnum.forbid)
|
|
return self._res_result()
|
|
|
|
def error(self):
|
|
self._set_code(ResponseCodeEnum.error)
|
|
return self._res_result()
|
|
|
|
def failure(self):
|
|
self._set_code(ResponseCodeEnum.failure)
|
|
return self._res_result()
|
|
|
|
def jwt_expired(self):
|
|
self._set_code(ResponseCodeEnum.jwt_expired)
|
|
return self._res_result()
|
|
|
|
def _set_code(self, code):
|
|
# 在内部设置状态码
|
|
if not self._msg:
|
|
self._msg = code.msg
|
|
if not self._status_code:
|
|
self._status_code = code.status_code
|
|
self._error_code = code.code
|
|
return self
|
|
|
|
def _res_result(self):
|
|
data = {"code": self._error_code, "msg": self._msg, "data": self._data}
|
|
data.update(self._table_data)
|
|
return data
|
|
|
|
def set_code(self, code):
|
|
self._set_code(code)
|
|
return self._res_result()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print(JsonResponse().set_msg("请求过于频繁").ok())
|