|
36 | 36 | import threading
|
37 | 37 |
|
38 | 38 | from datetime import date, datetime
|
| 39 | +from asposepdfcloud.models.http_status_code import HttpStatusCode |
39 | 40 |
|
40 | 41 | # python 2 and python 3 compatibility library
|
41 | 42 | from six import PY3, integer_types, iteritems, text_type
|
@@ -185,13 +186,24 @@ def __call_api(self, resource_path, method,
|
185 | 186 | self.__add_o_auth_token(header_params)
|
186 | 187 |
|
187 | 188 |
|
188 |
| - # perform request and return response |
189 |
| - response_data = self.request(method, url, |
190 |
| - query_params=query_params, |
191 |
| - headers=header_params, |
192 |
| - post_params=post_params, body=body, |
193 |
| - _preload_content=_preload_content, |
194 |
| - _request_timeout=_request_timeout) |
| 189 | + try: |
| 190 | + # perform request and return response |
| 191 | + response_data = self.request(method, url, |
| 192 | + query_params=query_params, |
| 193 | + headers=header_params, |
| 194 | + post_params=post_params, body=body, |
| 195 | + _preload_content=_preload_content, |
| 196 | + _request_timeout=_request_timeout) |
| 197 | + except ApiException as error: |
| 198 | + if error.status == HttpStatusCode.UNAUTHORIZED: |
| 199 | + self.__refresh_token() |
| 200 | + self.__add_o_auth_token(header_params) |
| 201 | + response_data = self.request(method, url, |
| 202 | + query_params=query_params, |
| 203 | + headers=header_params, |
| 204 | + post_params=post_params, body=body, |
| 205 | + _preload_content=_preload_content, |
| 206 | + _request_timeout=_request_timeout) |
195 | 207 |
|
196 | 208 | self.last_response = response_data
|
197 | 209 |
|
@@ -242,7 +254,36 @@ def __request_token(self):
|
242 | 254 |
|
243 | 255 | data = json.loads(str(response_data.data))
|
244 | 256 | config.access_token = data['access_token']
|
| 257 | + config.refresh_token = data['refresh_token'] |
| 258 | + |
| 259 | + def __refresh_token(self): |
| 260 | + config = Configuration() |
| 261 | + |
| 262 | + # header parameters |
| 263 | + header_params = {"Content-Type" : "application/x-www-form-urlencoded"} |
| 264 | + |
| 265 | + method = 'POST' |
| 266 | + |
| 267 | + # post params |
| 268 | + post_params = { |
| 269 | + "grant_type" : "refresh_token", |
| 270 | + "refresh_token" : config.refresh_token |
| 271 | + } |
| 272 | + |
| 273 | + # resource path |
| 274 | + resource_path = "/oauth2/token" |
| 275 | + |
| 276 | + # request url |
| 277 | + url = self.host.replace("/v1.1", "") + resource_path |
| 278 | + |
| 279 | + # perform request and return response |
| 280 | + response_data = self.request(method, url, |
| 281 | + headers=header_params, |
| 282 | + post_params=post_params) |
245 | 283 |
|
| 284 | + data = json.loads(str(response_data.data)) |
| 285 | + config.access_token = data['access_token'] |
| 286 | + config.refresh_token = data['refresh_token'] |
246 | 287 |
|
247 | 288 | def __add_o_auth_token(self, header_params):
|
248 | 289 | config = Configuration()
|
|
0 commit comments