default_controller.py 995B

12345678910111213141516171819202122232425262728293031323334353637
  1. # coding=utf-8
  2. from tracim import TracimRequest
  3. from tracim.extensions import hapic
  4. from tracim.views.controllers import Controller
  5. from pyramid.config import Configurator
  6. from pyramid.exceptions import NotFound
  7. class DefaultController(Controller):
  8. def notfound_view(self, request: TracimRequest):
  9. request.response.status = 404
  10. return {}
  11. def swagger_doc(self, request: TracimRequest):
  12. return hapic.generate_doc(
  13. title='Tracim v2 API',
  14. description='API of Tracim v2',
  15. )
  16. def bind(self, configurator: Configurator):
  17. configurator.add_view(
  18. self.notfound_view,
  19. renderer='json',
  20. context=NotFound,
  21. )
  22. configurator.add_route(
  23. 'swagger_doc',
  24. '/swagger_doc',
  25. request_method='GET',
  26. )
  27. configurator.add_view(
  28. self.swagger_doc,
  29. route_name='swagger_doc',
  30. renderer='json',
  31. )