Skip to content

Commit 418d45a

Browse files
authored
critical fix to bearer token breakage
1 parent 6d35bbc commit 418d45a

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

Algorithmia/client.py

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,10 @@ def __init__(self, apiKey = None, apiAddress = None, caCert = None, bearerToken=
3131
self.requestSession = requests.Session()
3232
if apiKey is None and 'ALGORITHMIA_API_KEY' in os.environ:
3333
apiKey = os.environ['ALGORITHMIA_API_KEY']
34-
if apiKey is None:
35-
if bearerToken is None and 'ALGORITHMIA_BEARER_TOKEN' in os.environ:
36-
bearerToken = os.environ['ALGORITHMIA_BEARER_TOKEN']
37-
self.bearerToken = bearerToken
38-
34+
elif bearerToken is None and 'ALGORITHMIA_BEARER_TOKEN' in os.environ:
35+
bearerToken = os.environ['ALGORITHMIA_BEARER_TOKEN']
36+
37+
self.bearerToken = bearerToken
3938
self.apiKey = apiKey
4039
if apiAddress is not None:
4140
self.apiAddress = apiAddress
@@ -254,42 +253,52 @@ def getHelper(self, url, **query_parameters):
254253
headers = {}
255254
if self.apiKey is not None:
256255
headers['Authorization'] = self.apiKey
257-
else:
256+
elif self.bearerToken is not None:
258257
headers['Authorization'] = 'Bearer '+ self.bearerToken
258+
else:
259+
raise Exception("No authentication provided")
259260
return self.requestSession.get(self.apiAddress + url, headers=headers, params=query_parameters)
260261

261262
def getStreamHelper(self, url, **query_parameters):
262263
headers = {}
263264
if self.apiKey is not None:
264265
headers['Authorization'] = self.apiKey
265-
else:
266+
elif self.bearerToken is not None:
266267
headers['Authorization'] = 'Bearer '+ self.bearerToken
268+
else:
269+
raise Exception("No authentication provided")
267270
return self.requestSession.get(self.apiAddress + url, headers=headers, params=query_parameters, stream=True)
268271

269272
def patchHelper(self, url, params):
270273
headers = {'content-type': 'application/json'}
271274
if self.apiKey is not None:
272275
headers['Authorization'] = self.apiKey
273-
else:
276+
elif self.bearerToken is not None:
274277
headers['Authorization'] = 'Bearer '+ self.bearerToken
278+
else:
279+
raise Exception("No authentication provided")
275280
return self.requestSession.patch(self.apiAddress + url, headers=headers, data=json.dumps(params))
276281

277282
# Used internally to get http head result
278283
def headHelper(self, url):
279284
headers = {}
280285
if self.apiKey is not None:
281286
headers['Authorization'] = self.apiKey
282-
else:
287+
elif self.bearerToken is not None:
283288
headers['Authorization'] = 'Bearer '+ self.bearerToken
289+
else:
290+
raise Exception("No authentication provided")
284291
return self.requestSession.head(self.apiAddress + url, headers=headers)
285292

286293
# Used internally to http put a file
287294
def putHelper(self, url, data):
288295
headers = {}
289296
if self.apiKey is not None:
290297
headers['Authorization'] = self.apiKey
291-
else:
298+
elif self.bearerToken is not None:
292299
headers['Authorization'] = 'Bearer '+ self.bearerToken
300+
else:
301+
raise Exception("No authentication provided")
293302
if isJson(data):
294303
headers['Content-Type'] = 'application/json'
295304

@@ -303,8 +312,10 @@ def deleteHelper(self, url):
303312
headers = {}
304313
if self.apiKey is not None:
305314
headers['Authorization'] = self.apiKey
306-
else:
315+
elif self.bearerToken is not None:
307316
headers['Authorization'] = 'Bearer '+ self.bearerToken
317+
else:
318+
raise Exception("No authentication provided")
308319
response = self.requestSession.delete(self.apiAddress + url, headers=headers)
309320
if response.reason == "No Content":
310321
return response

0 commit comments

Comments
 (0)