44 lines
1.7 KiB
Python
44 lines
1.7 KiB
Python
# _*_ coding: utf-8 _*_
|
|
# @Time :2022/5/29 11:39
|
|
# @Email :508737091@qq.com
|
|
# @Author :qiangyanwen
|
|
# @File :response.py
|
|
from dataclasses import make_dataclass
|
|
from typing import Union
|
|
from fastapi.responses import JSONResponse
|
|
from fastapi import status
|
|
|
|
from .jsonable_encoder import jsonable_encoder
|
|
|
|
|
|
def success_200(data: Union[list, dict, str] = None, code: int = 200, message: str = "Success") -> JSONResponse:
|
|
return response_base(status.HTTP_200_OK, data, code, message).Success()
|
|
|
|
|
|
def error_211(data: Union[list, dict, str] = None, code: int = 211, message: str = "error") -> JSONResponse:
|
|
return response_base(status.HTTP_200_OK, data, code, message).Success()
|
|
|
|
|
|
def error_400(data: Union[list, dict, str] = None, code: int = 400, message: str = "请求失败") -> JSONResponse:
|
|
return response_base(status.HTTP_400_BAD_REQUEST, data, code, message).Success()
|
|
|
|
|
|
def error_403(data: Union[list, dict, str] = None, code: int = 403, message: str = "Token 认证失败") -> JSONResponse:
|
|
return response_base(status.HTTP_403_FORBIDDEN, data, code, message).Success()
|
|
|
|
|
|
def error_500(data: Union[list, dict, str] = None, code: int = 500,
|
|
message: str = "Internal Server Error") -> JSONResponse:
|
|
return response_base(status.HTTP_500_INTERNAL_SERVER_ERROR, data, code, message).Success()
|
|
|
|
|
|
response_base = make_dataclass(
|
|
"response_base",
|
|
[('http_status', int, None), ('data', Union[list, dict, str], None), ('code', int, None), ('message', str, None)],
|
|
namespace={
|
|
"Success": lambda self: JSONResponse(
|
|
status_code=self.http_status,
|
|
content=jsonable_encoder({'code': self.code, 'message': self.message, 'data': self.data})
|
|
)
|
|
}
|
|
) |