output.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import datetime
  2. from http import HTTPStatus
  3. from typing import Generic, Optional, Type, TypeVar
  4. import json
  5. from pydantic import BaseModel
  6. ResultType = TypeVar('ResultType')
  7. class ApiResponse(BaseModel, Generic[ResultType]):
  8. Code: Optional[int] = HTTPStatus.OK
  9. Success: Optional[bool] = True
  10. RequestId: Optional[str] = ''
  11. Message: Optional[str] = 'success'
  12. Data: Optional[ResultType] = {}
  13. """
  14. ResultType (_type_): The response data type.
  15. Failed: {'Code': 10010101004, 'Message': 'get model info failed, err: unauthorized permission',
  16. 'RequestId': '', 'Success': False}
  17. Success: {'Code': 200, 'Data': {}, 'Message': 'success', 'RequestId': '', 'Success': True}
  18. def set_data(self, data=Type[ResultType]):
  19. self.Data = data
  20. def set_message(self, message):
  21. self.Message = message
  22. def toJSON(self):
  23. return json.dumps(self, default=lambda o: o.isoformat() if (isinstance(o, datetime.datetime))
  24. else o.__dict__, sort_keys=True, indent=4)
  25. """