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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Changed
- Changed token url to being tokens in authorization headers.
- Add in bearer token function for use of EDL bearer token in authorization headers.

## [0.7.0]
### Added
Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,14 @@ specified before making the request:

>>> granules = api.format("echo10").get(100)

We can add token to the api calls by setting headers using the following functions:

# Use token function for EDL echo-token or launchpad token
>>> api.token(token)

# Use bearer token function for EDL bearer tokens
>>> api.bearer_token(token)

The following formats are supported for both granule and collection queries:

- json (default)
Expand Down
18 changes: 17 additions & 1 deletion cmr/queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ def token(self, token):
"""
Add token into authorization headers.

:param token: Token from EDL or NASA Launchpad token.
:param token: Token from EDL Echo-Token or NASA Launchpad token.
:returns: Query instance
"""

Expand All @@ -287,6 +287,22 @@ def token(self, token):

return self

def bearer_token(self, bearer_token):
"""
Add token into authorization headers.

:param token: Token from EDL token.
:returns: Query instance
"""

if not bearer_token:
return self

self.headers = {'Authorization': 'Bearer ' + bearer_token}

return self


class GranuleCollectionBaseQuery(Query):
"""
Base class for Granule and Collection CMR queries.
Expand Down
9 changes: 9 additions & 0 deletions tests/test_collection.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,12 @@ def test_token(self):

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "123TOKEN")

def bearer_test_token(self):
query = CollectionQuery()

query.bearer_token("123TOKEN")

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "Bearer 123TOKEN")

11 changes: 10 additions & 1 deletion tests/test_granule.py
Original file line number Diff line number Diff line change
Expand Up @@ -434,4 +434,13 @@ def test_token(self):

query.token("123TOKEN")
self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "123TOKEN")
self.assertEqual(query.headers["Authorization"], "123TOKEN")

def bearer_test_token(self):
query = GranuleQuery()

query.bearer_token("123TOKEN")

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "Bearer 123TOKEN")

9 changes: 9 additions & 0 deletions tests/test_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,12 @@ def test_token(self):

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "123TOKEN")

def bearer_test_token(self):
query = ServiceQuery()

query.bearer_token("123TOKEN")

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "Bearer 123TOKEN")

9 changes: 9 additions & 0 deletions tests/test_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,12 @@ def test_token(self):

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "123TOKEN")

def bearer_test_token(self):
query = ToolQuery()

query.bearer_token("123TOKEN")

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "Bearer 123TOKEN")

9 changes: 9 additions & 0 deletions tests/test_variable.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,12 @@ def test_token(self):

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "123TOKEN")

def bearer_test_token(self):
query = VariableQuery()

query.bearer_token("123TOKEN")

self.assertIn("Authorization", query.headers)
self.assertEqual(query.headers["Authorization"], "Bearer 123TOKEN")