Browse Source

add generated swagger_doc as temporary endpoint

Guénaël Muller 6 years ago
parent
commit
bf149e2b25
2 changed files with 18 additions and 14 deletions
  1. 0 13
      tracim/__init__.py
  2. 18 1
      tracim/views/default/default_controller.py

+ 0 - 13
tracim/__init__.py View File

50
     default_controllers.bind(configurator)
50
     default_controllers.bind(configurator)
51
     session_api = SessionController()
51
     session_api = SessionController()
52
     session_api.bind(configurator)
52
     session_api.bind(configurator)
53
-    # TODO - G.M - 09-04-2018 - Enable swagger ui doc
54
-    # time.sleep(1)
55
-    # s = json.dumps(
56
-    #     hapic.generate_doc(
57
-    #         title='Tracim v2 API',
58
-    #         description='API of Tracim v2',
59
-    #
60
-    #     )
61
-    # )
62
-    # time.sleep(1)
63
-    # # print swagger doc
64
-    # print(s)
65
-    # time.sleep(1)
66
     return configurator.make_wsgi_app()
53
     return configurator.make_wsgi_app()

+ 18 - 1
tracim/views/default/default_controller.py View File

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