refactor(backend): 统一返回的数据格式
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
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())
|
||||
Reference in New Issue
Block a user