Browse Source

add TODOs and resolve import problems

Bastien Sevajol 6 years ago
parent
commit
9e808fb078
1 changed files with 10 additions and 4 deletions
  1. 10 4
      hapic/ext/flask/context.py

+ 10 - 4
hapic/ext/flask/context.py View File

3
 import typing
3
 import typing
4
 from http import HTTPStatus
4
 from http import HTTPStatus
5
 
5
 
6
-from flask import request, Response
7
-
8
-
9
 from hapic.context import ContextInterface
6
 from hapic.context import ContextInterface
10
 from hapic.exception import OutputValidationException
7
 from hapic.exception import OutputValidationException
11
 from hapic.processor import RequestParameters, ProcessValidationError
8
 from hapic.processor import RequestParameters, ProcessValidationError
12
 
9
 
10
+if typing.TYPE_CHECKING:
11
+    from flask import Response
12
+
13
 
13
 
14
 class FlaskContext(ContextInterface):
14
 class FlaskContext(ContextInterface):
15
     def get_request_parameters(self, *args, **kwargs) -> RequestParameters:
15
     def get_request_parameters(self, *args, **kwargs) -> RequestParameters:
16
+        from flask import request
16
         return RequestParameters(
17
         return RequestParameters(
17
             path_parameters=request.view_args,
18
             path_parameters=request.view_args,
18
             query_parameters=request.args,  # TODO: Check
19
             query_parameters=request.args,  # TODO: Check
19
             body_parameters=request.get_json(),  # TODO: Check
20
             body_parameters=request.get_json(),  # TODO: Check
20
             form_parameters=request.form,
21
             form_parameters=request.form,
21
             header_parameters=request.headers,
22
             header_parameters=request.headers,
23
+            files_parameters={},  # TODO: BS 20171115: Code it
22
         )
24
         )
23
 
25
 
24
     def get_response(
26
     def get_response(
25
         self,
27
         self,
26
         response: dict,
28
         response: dict,
27
         http_code: int,
29
         http_code: int,
28
-    ) -> Response:
30
+    ) -> 'Response':
31
+        from flask import Response
29
         return Response(
32
         return Response(
30
             response=json.dumps(response),
33
             response=json.dumps(response),
31
             mimetype='application/json',
34
             mimetype='application/json',
51
             mimetype='application/json',
54
             mimetype='application/json',
52
             status=int(http_code),
55
             status=int(http_code),
53
         )
56
         )
57
+
58
+# TODO BS 20171115: Implement other context methods
59
+# (take source in example_a_flask.py)