Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions pydomo/Transport.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ 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, scope):
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.scope = scope
self._renew_access_token()

@staticmethod
Expand Down Expand Up @@ -84,10 +85,13 @@ def request(self, url, method, headers, params=None, body=None):

def _renew_access_token(self):
self.logger.debug("Renewing Access Token")
# scope == None means use all scopes from client
scope = ' '.join(self.scope) if self.scope else None

request_args = {
'method': HTTPMethod.POST,
'url': self.apiHost + '/oauth/token',
'data': {'grant_type': 'client_credentials'},
'data': {'grant_type': 'client_credentials', 'scope': scope},
'auth': HTTPBasicAuth(self.clientId, self.clientSecret)
}
if self.request_timeout:
Expand Down
3 changes: 2 additions & 1 deletion pydomo/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,13 @@ def __init__(self, client_id, client_secret, api_host='api.domo.com', **kwargs):
self.logger = parent_logger

timeout = kwargs.get('request_timeout', None)
scope = kwargs.get('scope')

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, scope = scope)
self.datasets = DataSetClient(self.transport, self.logger)
self.groups = GroupClient(self.transport, self.logger)
self.pages = PageClient(self.transport, self.logger)
Expand Down