defmodule Dnsimple.Identity do
@moduledoc """
Provides functions to interact with the
[identity endpoints](https://developer.dnsimple.com/v2/identity/).
See:
- https://developer.dnsimple.com/v2/identity/
"""
alias Dnsimple.Client
alias Dnsimple.Response
alias Dnsimple.Whoami
alias Dnsimple.Account
alias Dnsimple.User
@doc """
Returns information about the currently authenticated user and/or account.
See:
- https://developer.dnsimple.com/v2/identity/#whoami
## Examples:
client = %Dnsimple.Client{access_token: "a1b2c3d4"}
{:ok, response} = Dnsimple.Identity.whoami(client)
"""
@spec whoami(Client.t, Keyword.t) :: {:ok|:error, Response.t}
def whoami(client, options \\ []) do
url = Client.versioned("/whoami")
Client.get(client, url, options)
|> Response.parse(%{"data" => %Whoami{account: %Account{}, user: %User{}}})
end
end