Handle missing config in a nicer manner
This commit is contained in:
parent
3e79379942
commit
d7efb7cf7a
1 changed files with 4 additions and 7 deletions
|
@ -3,7 +3,7 @@ import urlparse
|
||||||
class OAuthConfig(object):
|
class OAuthConfig(object):
|
||||||
def __init__(self, app, key_name):
|
def __init__(self, app, key_name):
|
||||||
self.key_name = key_name
|
self.key_name = key_name
|
||||||
self.config = app.config.get(key_name, {})
|
self.config = app.config.get(key_name) or {}
|
||||||
|
|
||||||
def service_name(self):
|
def service_name(self):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
@ -24,9 +24,6 @@ class OAuthConfig(object):
|
||||||
return self.config.get('CLIENT_SECRET')
|
return self.config.get('CLIENT_SECRET')
|
||||||
|
|
||||||
def _get_url(self, endpoint, *args):
|
def _get_url(self, endpoint, *args):
|
||||||
if not endpoint:
|
|
||||||
raise Exception('Missing endpoint configuration for OAuth config %s', self.key_name)
|
|
||||||
|
|
||||||
for arg in args:
|
for arg in args:
|
||||||
endpoint = urlparse.urljoin(endpoint, arg)
|
endpoint = urlparse.urljoin(endpoint, arg)
|
||||||
|
|
||||||
|
@ -41,15 +38,15 @@ class GithubOAuthConfig(OAuthConfig):
|
||||||
return 'GitHub'
|
return 'GitHub'
|
||||||
|
|
||||||
def authorize_endpoint(self):
|
def authorize_endpoint(self):
|
||||||
endpoint = self.config.get('GITHUB_ENDPOINT')
|
endpoint = self.config.get('GITHUB_ENDPOINT', 'https://github.com')
|
||||||
return self._get_url(endpoint, '/login/oauth/authorize') + '?'
|
return self._get_url(endpoint, '/login/oauth/authorize') + '?'
|
||||||
|
|
||||||
def token_endpoint(self):
|
def token_endpoint(self):
|
||||||
endpoint = self.config.get('GITHUB_ENDPOINT')
|
endpoint = self.config.get('GITHUB_ENDPOINT', 'https://github.com')
|
||||||
return self._get_url(endpoint, '/login/oauth/access_token')
|
return self._get_url(endpoint, '/login/oauth/access_token')
|
||||||
|
|
||||||
def _api_endpoint(self):
|
def _api_endpoint(self):
|
||||||
endpoint = self.config.get('GITHUB_ENDPOINT')
|
endpoint = self.config.get('GITHUB_ENDPOINT', 'https://github.com')
|
||||||
return self.config.get('API_ENDPOINT', self._get_url(endpoint, '/api/v3/'))
|
return self.config.get('API_ENDPOINT', self._get_url(endpoint, '/api/v3/'))
|
||||||
|
|
||||||
def user_endpoint(self):
|
def user_endpoint(self):
|
||||||
|
|
Reference in a new issue