description.py 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # -*- coding: utf-8 -*-
  2. import typing
  3. if typing.TYPE_CHECKING:
  4. from hapic.decorator import ControllerWrapper
  5. class Description(object):
  6. def __init__(self, wrapper: 'ControllerWrapper') -> None:
  7. self.wrapper = wrapper
  8. class InputPathDescription(Description):
  9. pass
  10. class InputQueryDescription(Description):
  11. pass
  12. class InputBodyDescription(Description):
  13. pass
  14. class InputHeadersDescription(Description):
  15. pass
  16. class InputFormsDescription(Description):
  17. def __init__(self, wrapper: 'ControllerWrapper') -> None:
  18. self.wrapper = wrapper
  19. class OutputBodyDescription(Description):
  20. pass
  21. class OutputHeadersDescription(Description):
  22. pass
  23. class ErrorDescription(Description):
  24. pass
  25. class ControllerDescription(object):
  26. def __init__(
  27. self,
  28. input_path: InputPathDescription=None,
  29. input_query: InputQueryDescription=None,
  30. input_body: InputBodyDescription=None,
  31. input_headers: InputHeadersDescription=None,
  32. input_forms: InputFormsDescription=None,
  33. output_body: OutputBodyDescription=None,
  34. output_headers: OutputHeadersDescription=None,
  35. errors: typing.List[ErrorDescription]=None,
  36. ):
  37. self.input_path = input_path
  38. self.input_query = input_query
  39. self.input_body = input_body
  40. self.input_headers = input_headers
  41. self.input_forms = input_forms
  42. self.output_body = output_body
  43. self.output_headers = output_headers
  44. self.errors = errors or []