diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-08 14:12:15 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-08 14:12:15 -0800 |
commit | a146ebbc3261f6cba6dc10e5a5524f6eca9ac98d (patch) | |
tree | 11a3dbdd4884c2c032144acafcaed003ac458ab6 /python/fatcat_tools/api_auth.py | |
parent | 0e344762101e9cb1f57a139c726fd50f2364ad51 (diff) | |
download | fatcat-a146ebbc3261f6cba6dc10e5a5524f6eca9ac98d.tar.gz fatcat-a146ebbc3261f6cba6dc10e5a5524f6eca9ac98d.zip |
start refactoring API object passing
Diffstat (limited to 'python/fatcat_tools/api_auth.py')
-rw-r--r-- | python/fatcat_tools/api_auth.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/python/fatcat_tools/api_auth.py b/python/fatcat_tools/api_auth.py new file mode 100644 index 00000000..b36d467c --- /dev/null +++ b/python/fatcat_tools/api_auth.py @@ -0,0 +1,40 @@ + +import sys +import fatcat_client +from fatcat_client.rest import ApiException + + +def public_api(host_uri): + """ + Note: unlike the authenticated variant, this helper might get called even + if the API isn't going to be used, so it's important that it doesn't try to + actually connect to the API host or something. + """ + conf = fatcat_client.Configuration() + conf.host = host_uri + return fatcat_client.DefaultApi(fatcat_client.ApiClient(conf)) + +def authenticated_api(host_uri, token=None): + """ + Note: if this helper is called, it's implied that an actual API connection + is needed, so it does try to connect and verify credentials. + """ + + conf = fatcat_client.Configuration() + conf.host = host_uri + if not token: + token = sys.env['FATCAT_API_AUTH_TOKEN'] + if not token: + sys.stderr.write( + 'This client requires a fatcat API token (eg, in env var FATCAT_API_AUTH_TOKEN)\n') + sys.exit(-1) + + conf.api_key["Authorization"] = token + conf.api_key_prefix["Authorization"] = "Bearer" + api = fatcat_client.DefaultApi(fatcat_client.ApiClient(conf)) + + # verify up front that auth is working + api.check_auth() + + return api + |