diff --git a/pydomo/Transport.py b/pydomo/Transport.py index aef2513..ca86f01 100644 --- a/pydomo/Transport.py +++ b/pydomo/Transport.py @@ -15,12 +15,14 @@ class DomoAPITransport: serialization and deserialization of objects. """ - def __init__(self, client_id, client_secret, api_host, use_https, logger, request_timeout): + def __init__(self, client_id, client_secret, api_host, use_https, logger, request_timeout, proxies, verify): self.apiHost = self._build_apihost(api_host, use_https) self.clientId = client_id self.clientSecret = client_secret self.logger = logger self.request_timeout = request_timeout + self.proxies = proxies + self.verify = verify self._renew_access_token() @staticmethod @@ -73,7 +75,10 @@ def request(self, url, method, headers, params=None, body=None): 'params': params, 'data': body, 'stream': True} if self.request_timeout: request_args['timeout'] = self.request_timeout - + if self.proxies: + request_args['proxies'] = self.proxies + if self.verify is not None: + request_args['verify'] = self.verify # Expiration date should be in UTC if datetime.now(timezone.utc).timestamp() > self.token_expiration: self.logger.debug("Access token is expired") @@ -91,6 +96,10 @@ def _renew_access_token(self): } if self.request_timeout: request_args['timeout'] = self.request_timeout + if self.proxies: + request_args['proxies'] = self.proxies + if self.verify is not None: + request_args['verify'] = self.verify response = requests.request(**request_args) if response.status_code == requests.codes.OK: diff --git a/pydomo/__init__.py b/pydomo/__init__.py index a3ccf1b..ecb7dac 100644 --- a/pydomo/__init__.py +++ b/pydomo/__init__.py @@ -82,12 +82,14 @@ def __init__(self, client_id, client_secret, api_host='api.domo.com', **kwargs): self.logger = parent_logger timeout = kwargs.get('request_timeout', None) + proxies = kwargs.get('proxies', None) + verify = kwargs.get('verify', True) if kwargs.get('log_level'): self.logger.setLevel(kwargs['log_level']) self.logger.debug("\n" + DOMO + "\n") - self.transport = DomoAPITransport(client_id, client_secret, api_host, kwargs.get('use_https', True), self.logger, request_timeout = timeout) + self.transport = DomoAPITransport(client_id, client_secret, api_host, kwargs.get('use_https', True), self.logger, request_timeout = timeout, proxies = proxies, verify = verify) self.datasets = DataSetClient(self.transport, self.logger) self.groups = GroupClient(self.transport, self.logger) self.pages = PageClient(self.transport, self.logger) @@ -112,7 +114,7 @@ def ds_meta(self, dataset_id): def ds_delete(self, dataset_id, prompt_before_delete=True): """ Delete a DataSet naming convention equivalent with rdomo - + :Parameters: - `dataset_id`: id of a dataset (str) """