Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
252 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Tokens | ||
|
||
```rb | ||
require "mapbox-sdk" | ||
Mapbox.access_token = "YOUR_ACCESS_TOKEN" | ||
|
||
# Get token | ||
token = Mapbox::Tokens.get_token | ||
|
||
# List token's scopes | ||
scopes = Mapbox::Tokens.list_scopes("YOUR_USERNAME") | ||
|
||
# List all tokens (your token must have the 'tokens:read' scope) | ||
tokens = Mapbox::Tokens.list_tokens("YOUR_USERNAME") | ||
|
||
# List only default public token | ||
default_token = Mapbox::Tokens.list_tokens("YOUR_USERNAME", {:default => true}) | ||
|
||
# List tokens except default public token | ||
tokens = Mapbox::Tokens.list_tokens("YOUR_USERNAME", {:default => false}) | ||
|
||
# List public tokens | ||
public_tokens = Mapbox::Tokens.list_tokens("YOUR_USERNAME", {:usage => 'pk'}) | ||
|
||
# List secret tokens | ||
secret_tokens = Mapbox::Tokens.list_tokens("YOUR_USERNAME", {:usage => 'sk'}) | ||
|
||
# Create a public token (your existing token must have the 'tokens:read' & 'tokens:write' scopes in addition to any scopes you intend to set on your new token) | ||
public_token = Mapbox::Tokens.create_token("YOUR_USERNAME", "auto-generated public token", ["styles:tiles", "styles:read", "fonts:read", "datasets:read", "vision:read"]) | ||
|
||
# Create a public token with use restricted to a particular domain name | ||
public_token = Mapbox::Tokens.create_token("YOUR_USERNAME", "auto-generated public token", ["styles:tiles", "styles:read", "fonts:read", "datasets:read", "vision:read"], ["example.com"]) | ||
|
||
# Create a secret token (your existing token must have the 'tokens:read' & 'tokens:write' scopes in addition to any scopes you intend to set on your new token) | ||
public_token = Mapbox::Tokens.create_token("YOUR_USERNAME", "auto-generated secret token", ["scopes:list", "tokens:read", "tokens:write"]) | ||
|
||
# Delete a token | ||
Mapbox::Tokens.delete_token("YOUR_USERNAME", "TOKEN_ID") | ||
|
||
# Update a public token's name/note & scopes (no "vision:read" scope) | ||
updated_token = Mapbox::Tokens.update_token("YOUR_USERNAME", "TOKEN_ID", "updated token", ["styles:tiles", "styles:read", "fonts:read", "datasets:read"]) | ||
|
||
# Update a public token's name/note, scopes, and allowed URLs | ||
updated_token = Mapbox::Tokens.update_token("YOUR_USERNAME", "TOKEN_ID", "updated token", ["styles:tiles", "styles:read", "fonts:read", "datasets:read"], ["example.com"]) | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
require 'rest-client' | ||
require 'json' | ||
require 'uri' | ||
|
||
module Mapbox | ||
class Tokens | ||
include Mapbox::APIOperations::Request | ||
extend Mapbox::HashUtils | ||
|
||
def self.assemble_params(options={}) | ||
params = '' | ||
if options.length > 0 | ||
params += "#{params.length > 0 ? '&' : '?'}#{URI.encode_www_form(options)}" | ||
end | ||
|
||
return params | ||
end | ||
|
||
def self.list_tokens(username, options={}) | ||
params = self.assemble_params(options) | ||
|
||
return request( | ||
:get, | ||
"/tokens/v2/#{URI.escape(username)}#{params}", | ||
nil) | ||
end | ||
|
||
def self.get_token() | ||
return request( | ||
:get, | ||
"/tokens/v2/", | ||
nil) | ||
end | ||
|
||
def self.create_token(username, note, scopes, allowedUrls=[]) | ||
scopes = scopes || [] | ||
|
||
params = {'note' => note, 'scopes' => scopes} | ||
params.update('allowedUrls' => allowedUrls) if allowedUrls && allowedUrls.any? | ||
|
||
return request( | ||
:post, | ||
"/tokens/v2/#{URI.escape(username)}", | ||
params) | ||
end | ||
|
||
def self.delete_token(username, token_id) | ||
return request( | ||
:delete, | ||
"/tokens/v2/#{URI.escape(username)}/#{URI.escape(token_id)}") | ||
end | ||
|
||
def self.update_token(username, token_id, note, scopes, allowedUrls=[]) | ||
scopes = scopes || [] | ||
|
||
params = {'note' => note, 'scopes' => scopes} | ||
params.update('allowedUrls' => allowedUrls) if allowedUrls && allowedUrls.any? | ||
|
||
return request( | ||
:patch, | ||
"/tokens/v2/#{URI.escape(username)}/#{URI.escape(token_id)}", | ||
params) | ||
end | ||
|
||
def self.list_scopes(username) | ||
return request( | ||
:get, | ||
"/scopes/v1/#{URI.escape(username)}", | ||
nil) | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
require 'mapbox' | ||
require 'test/unit' | ||
require 'mocha/setup' | ||
require 'shoulda' | ||
|
||
module Mapbox | ||
class TokensTest < Test::Unit::TestCase | ||
should "#tokens_list" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.list_tokens(ENV["MapboxUsername"]) | ||
assert result | ||
end | ||
|
||
should "#tokens_list (include true default param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.list_tokens(ENV["MapboxUsername"], {:default => true}) | ||
assert result | ||
assert Mapbox.request_opts[:url].include? '?default=true' | ||
end | ||
|
||
should "#tokens_list (include false default param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.list_tokens(ENV["MapboxUsername"], {:default => false}) | ||
assert result | ||
assert Mapbox.request_opts[:url].include? '?default=false' | ||
end | ||
|
||
should "#tokens_list (include public key usage param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.list_tokens(ENV["MapboxUsername"], {:usage => "pk"}) | ||
assert result | ||
assert Mapbox.request_opts[:url].include? '?usage=pk' | ||
end | ||
|
||
should "#tokens_list (include private key usage param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.list_tokens(ENV["MapboxUsername"], {:usage => "sk"}) | ||
assert result | ||
assert Mapbox.request_opts[:url].include? '?usage=sk' | ||
end | ||
|
||
should "#token_get" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.get_token | ||
assert result | ||
end | ||
|
||
should "#token_create" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.create_token(ENV["MapboxUsername"], "mapbox-sdk-rb test", []) | ||
assert result | ||
Mapbox::Tokens.delete_token(ENV["MapboxUsername"], result.first["id"]) if result | ||
end | ||
|
||
should "#token_create (include note param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.create_token(ENV["MapboxUsername"], "mapbox-sdk-rb test", []) | ||
assert result | ||
assert Mapbox.request_opts[:payload].include? '"note":"mapbox-sdk-rb test"' | ||
Mapbox::Tokens.delete_token(ENV["MapboxUsername"], result.first["id"]) if result | ||
end | ||
|
||
should "#token_create (include scopes param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.create_token(ENV["MapboxUsername"], "mapbox-sdk-rb test", ["tokens:read"]) | ||
assert result | ||
assert Mapbox.request_opts[:payload].include? '"scopes":["tokens:read"' | ||
Mapbox::Tokens.delete_token(ENV["MapboxUsername"], result.first["id"]) if result | ||
end | ||
|
||
should "#token_create (include allowed URLs param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.create_token(ENV["MapboxUsername"], "mapbox-sdk-rb test", [], ["example.com"]) | ||
assert result | ||
assert Mapbox.request_opts[:payload].include? '"allowedUrls":["example.com"' | ||
Mapbox::Tokens.delete_token(ENV["MapboxUsername"], result.first["id"]) if result | ||
end | ||
|
||
should "#token_delete" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
new_token = Mapbox::Tokens.create_token(ENV["MapboxUsername"], "mapbox-sdk-rb test", []) | ||
result = Mapbox::Tokens.delete_token(ENV["MapboxUsername"], new_token.first["id"]) | ||
assert result | ||
end | ||
|
||
should "#token_update" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
new_token = Mapbox::Tokens.create_token(ENV["MapboxUsername"], "mapbox-sdk-rb test", []) | ||
result = Mapbox::Tokens.update_token(ENV["MapboxUsername"], new_token.first["id"],"mapbox-sdk-rb test (updated)",[]) | ||
assert result | ||
Mapbox::Tokens.delete_token(ENV["MapboxUsername"], result.first["id"]) if result | ||
end | ||
|
||
should "#token_update (include scopes param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
new_token = Mapbox::Tokens.create_token(ENV["MapboxUsername"], "mapbox-sdk-rb test", ["tokens:read"]) | ||
result = Mapbox::Tokens.update_token(ENV["MapboxUsername"], new_token.first["id"],"mapbox-sdk-rb test (updated)",["tokens:write"]) | ||
assert result | ||
assert Mapbox.request_opts[:payload].include? '"scopes":["tokens:write"' | ||
Mapbox::Tokens.delete_token(ENV["MapboxUsername"], result.first["id"]) if result | ||
end | ||
|
||
should "#token_update (include allowed URLs param)" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
new_token = Mapbox::Tokens.create_token(ENV["MapboxUsername"], "mapbox-sdk-rb test", []) | ||
result = Mapbox::Tokens.update_token(ENV["MapboxUsername"], new_token.first["id"],"mapbox-sdk-rb test (updated)",[], ["example.com"]) | ||
assert result | ||
assert Mapbox.request_opts[:payload].include? '"allowedUrls":["example.com"' | ||
Mapbox::Tokens.delete_token(ENV["MapboxUsername"], result.first["id"]) if result | ||
end | ||
|
||
should "#scopes_list" do | ||
Mapbox.access_token = ENV["MapboxAccessToken"] | ||
result = Mapbox::Tokens.list_scopes(ENV["MapboxUsername"]) | ||
assert result | ||
end | ||
end | ||
end |