Files

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())