Aura.APIKeys (Aura v1.0.1)
View SourceService module for interacting with Hex API keys
Resources
- Hex
- Contact the maintainer (he's happy to help!)
Summary
Types
Options to modify a request
Functions
Creates a new API key
Deletes all API keys for the authenticated requester
Deletes an API key for the authenticated requester, given a key_name
Grabs API key information associated with a given key_name
Grabs info about the requester's API key(s)
Types
@type api_key_opts() :: [ org: Aura.Common.org_name(), repo_url: Aura.Common.repo_url() ]
Options to modify a request
Keys
- repo_url ::
Aura.Common.repo_url/0
- org ::
Aura.Common.org_name/0
Functions
@spec create_api_key( key_name :: Aura.Common.api_key_name(), username :: Aura.Common.username(), password :: String.t(), allow_write :: boolean(), opts :: api_key_opts() ) :: {:ok, Aura.Model.HexAPIKey.t()} | {:error, any()}
Creates a new API key
Parameters
Parameter | Description |
---|---|
key_name | Aura.Common.api_key_name/0 |
username | Aura.Common.username/0 |
password | password for this user |
allow_write | whether the key has write permissions on the api domain. Default: false |
opts[:org] | Aura.Common.org_name/0 |
opts[:repo_url] | Aura.Common.repo_url/0 |
API Details
Method | Path | Controller | Action |
---|---|---|---|
POST | /keys | KeyController | :create |
POST | /orgs/opts[:org] /keys | KeyController | :create |
Examples
iex> alias Aura.APIKeys
iex> key_name = "test_user_key"
iex> username = "test@test.com"
iex> password = "elixir1234"
iex> allow_write = true
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, _key} =
...> APIKeys.create_api_key(key_name, username, password, allow_write, opts)
# scoped to an organization
iex> alias Aura.APIKeys
iex> key_name = "test_user_key"
iex> username = "test@test.com"
iex> password = "elixir1234"
iex> allow_write = true
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> {:ok, _key} =
...> APIKeys.create_api_key(key_name, username, password, allow_write, opts)
@spec delete_all_api_keys(opts :: api_key_opts()) :: :ok | {:error, any()}
Deletes all API keys for the authenticated requester
Parameters
Parameter | Description |
---|---|
opts[:org] | Aura.Common.org_name/0 |
opts[:repo_url] | Aura.Common.repo_url/0 |
API Details
Method | Path | Controller | Action |
---|---|---|---|
DELETE | /keys | KeyController | :delete_all |
DELETE | /orgs/opts[:org] /keys | KeyController | :delete_all |
Examples
iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> APIKeys.delete_all_api_keys(opts)
:ok
# scoped to an organization
iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> APIKeys.delete_all_api_keys(opts)
:ok
@spec delete_api_key(key_name :: Aura.Common.api_key_name(), opts :: api_key_opts()) :: :ok | {:error, any()}
Deletes an API key for the authenticated requester, given a key_name
Parameters
Parameter | Description |
---|---|
key_name | Aura.Common.api_key_name/0 |
opts[:org] | Aura.Common.org_name/0 |
opts[:repo_url] | Aura.Common.repo_url/0 |
API Details
Method | Path | Controller | Action |
---|---|---|---|
DELETE | /keys/:key_name | KeyController | :delete |
DELETE | /orgs/opts[:org] /keys/:key_name | KeyController | :delete |
Examples
iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, [key | _]} = APIKeys.list_api_keys(opts)
iex> APIKeys.delete_api_key(key.name, opts)
:ok
# scoped to an organization
iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> {:ok, [key | _]} = APIKeys.list_api_keys(opts)
iex> APIKeys.delete_api_key(key.name, opts)
:ok
@spec get_api_key(key_name :: Aura.Common.api_key_name(), opts :: api_key_opts()) :: {:ok, Aura.Model.HexAPIKey.t()} | {:error, any()}
Grabs API key information associated with a given key_name
Parameters
Parameter | Description |
---|---|
key_name | Aura.Common.api_key_name/0 |
opts[:org] | Aura.Common.org_name/0 |
opts[:repo_url] | Aura.Common.repo_url/0 |
API Details
Method | Path | Controller | Action |
---|---|---|---|
GET | /keys/:key_name | KeyController | :show |
GET | /orgs/opts[:org] /keys/:key_name | KeyController | :show |
Examples
iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, keys} = APIKeys.list_api_keys(opts)
iex> keys |> Enum.map(fn key -> {:ok, _k} = APIKeys.get_api_key(key.name, opts) end)
# scoped to an organization
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> {:ok, keys} = APIKeys.list_api_keys(opts)
iex> keys |> Enum.map(fn key -> {:ok, _k} = APIKeys.get_api_key(key.name, opts) end)
@spec list_api_keys(opts :: api_key_opts()) :: {:ok, [Aura.Model.HexAPIKey.t()]} | {:error, any()}
Grabs info about the requester's API key(s)
Parameters
Parameter | Description |
---|---|
opts[:org] | Aura.Common.org_name/0 |
opts[:repo_url] | Aura.Common.repo_url/0 |
API Details
Method | Path | Controller | Action |
---|---|---|---|
GET | /keys | KeyController | :index |
GET | /orgs/opts[:org] /keys | KeyController | :index |
Examples
iex> alias Aura.APIKeys
iex> opts = [repo_url: "http://localhost:4000/api"]
iex> {:ok, keys} = APIKeys.list_api_keys(opts)
iex> Enum.empty?(keys)
false
# scoped to an organization
iex> opts = [repo_url: "http://localhost:4000/api", org: "test_org"]
iex> {:ok, keys} = APIKeys.list_api_keys(opts)
iex> Enum.empty?(keys)
false