44import requests
55from flask import current_app
66
7+ from pyms .flask .services .driver import DriverService
8+
79DATA = 'data'
810
911
10- class Request (object ):
12+ class Service (DriverService ):
13+ service = "requests"
14+ default_values = {
15+ "data" : ""
16+ }
1117
12- def __init__ (self ):
18+ def __init__ (self , service , * args , ** kwargs ):
1319 """Initialization for trace headers propagation"""
14- self . _tracer = current_app . tracer
20+ super (). __init__ ( service , * args , ** kwargs )
1521
1622 def insert_trace_headers (self , headers ):
1723 """Inject trace headers if enabled.
@@ -20,6 +26,7 @@ def insert_trace_headers(self, headers):
2026
2127 :rtype: dict
2228 """
29+ self ._tracer = current_app .tracer
2330 try :
2431 # FLASK https://github.com/opentracing-contrib/python-flask
2532 span = self ._tracer .get_span ()
@@ -69,7 +76,7 @@ def get(self, url, path_params=None, params=None, headers=None, **kwargs):
6976 :rtype: requests.Response
7077 """
7178
72- full_url = Request ._build_url (url , path_params )
79+ full_url = self ._build_url (url , path_params )
7380 headers = self ._get_headers (headers )
7481 current_app .logger .info ("Get with url {}, params {}, headers {}, kwargs {}" .
7582 format (full_url , params , headers , kwargs ))
@@ -94,7 +101,10 @@ def get_for_object(self, url, path_params=None, params=None, headers=None, **kwa
94101 response = self .get (url , path_params = path_params , params = params , headers = headers , ** kwargs )
95102
96103 try :
97- return response .json ().get (DATA , {})
104+ data = response .json ()
105+ if self .config .data :
106+ data = data .get (self .config .data , {})
107+ return data
98108 except ValueError :
99109 current_app .logger .warning ("Response.content is not a valid json {}" .format (response .content ))
100110 return {}
@@ -113,7 +123,7 @@ def post(self, url, path_params=None, data=None, json=None, headers=None, **kwar
113123 :rtype: requests.Response
114124 """
115125
116- full_url = Request ._build_url (url , path_params )
126+ full_url = self ._build_url (url , path_params )
117127 headers = self ._get_headers (headers )
118128 current_app .logger .info ("Post with url {}, data {}, json {}, headers {}, kwargs {}" .format (full_url , data , json ,
119129 headers , kwargs ))
@@ -158,7 +168,7 @@ def put(self, url, path_params=None, data=None, headers=None, **kwargs):
158168 :rtype: requests.Response
159169 """
160170
161- full_url = Request ._build_url (url , path_params )
171+ full_url = self ._build_url (url , path_params )
162172 headers = self ._get_headers (headers )
163173 current_app .logger .info ("Put with url {}, data {}, headers {}, kwargs {}" .format (full_url , data , headers ,
164174 kwargs ))
@@ -200,7 +210,7 @@ def delete(self, url, path_params=None, headers=None, **kwargs):
200210 :rtype: requests.Response
201211 """
202212
203- full_url = Request ._build_url (url , path_params )
213+ full_url = self ._build_url (url , path_params )
204214 headers = self ._get_headers (headers )
205215 current_app .logger .info ("Delete with url {}, headers {}, kwargs {}" .format (full_url , headers , kwargs ))
206216 response = requests .delete (full_url , headers = headers , ** kwargs )
0 commit comments