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