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