2022-09-11 10:34:18 +00:00
|
|
|
import enum
|
|
|
|
from typing import Generic, Optional, TypeVar, Union
|
|
|
|
|
|
|
|
from pydantic.generics import GenericModel
|
|
|
|
|
|
|
|
T = TypeVar("T")
|
|
|
|
|
|
|
|
|
|
|
|
class Status(enum.IntEnum):
|
|
|
|
OK = 200
|
|
|
|
CREATED = 201
|
|
|
|
ACCEPTED = 202
|
|
|
|
NO_CONTENT = 204
|
|
|
|
BAD_REQUEST = 400
|
|
|
|
UNAUTHORIZED = 401
|
|
|
|
FORBIDDEN = 403
|
|
|
|
NOT_FOUND = 404
|
|
|
|
INTERNAL_SERVER_ERROR = 500
|
|
|
|
NOT_IMPLEMENTED = 501
|
|
|
|
BAD_GATEWAY = 502
|
|
|
|
SERVICE_UNAVAILABLE = 503
|
|
|
|
|
|
|
|
|
|
|
|
class Msg(enum.Enum):
|
|
|
|
OK = "OK"
|
|
|
|
FAIL = "FAIL"
|
|
|
|
|
|
|
|
|
|
|
|
class Response(GenericModel, Generic[T]):
|
|
|
|
code: Status = Status.OK
|
|
|
|
data: Optional[T]
|
2022-09-11 14:50:39 +00:00
|
|
|
msg: Union[Msg, str] = Msg.OK
|