Packages
stripity_stripe
2.17.2
3.3.2
3.3.1
3.2.0
3.1.1
3.1.0
3.0.0
2.17.3
2.17.2
2.17.1
2.17.0
2.16.0
2.15.1
2.15.0
2.14.1
2.14.0
2.13.0
2.12.1
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.1
2.0.0
2.0.0-alpha.11
2.0.0-alpha.10
2.0.0-alpha.9
2.0.0-alpha.8
2.0.0-alpha.7
2.0.0-alpha.6
2.0.0-alpha.5
2.0.0-alpha.4
2.0.0-alpha.3
2.0.0-alpha.2
2.0.0-alpha.1
1.6.2
1.6.1
1.6.0
1.4.0
1.3.0
1.2.0
1.1.0
0.5.0
0.4.0
0.3.0
0.2.0
A Stripe client for Elixir.
Current section
Files
Jump to
Current section
Files
lib/stripe/connect/capability.ex
defmodule Stripe.Capability do
@moduledoc """
Work with [Stripe Connect `capability` objects](https://stripe.com/docs/api/capabilities).
You can:
- [Retrieve an Account Capability](https://stripe.com/docs/api/capabilities/retrieve)
- [Update an Account Capability](https://stripe.com/docs/api/capabilities/update)
- [List all account capabilities](https://stripe.com/docs/api/capabilities/list)
"""
use Stripe.Entity
import Stripe.Request
@spec accounts_plural_endpoint(params) :: String.t() when params: %{:account => Stripe.id()}
defp accounts_plural_endpoint(%{account: id}) do
"accounts/#{id}/capabilities"
end
@type requirements :: %{
current_deadline: Stripe.timestamp() | nil,
currently_due: Stripe.List.t(String.t()) | nil,
disabled_reason: String.t() | nil,
eventually_due: Stripe.List.t(String.t()) | nil,
past_due: Stripe.List.t(String.t()) | nil,
pending_verification: Stripe.List.t(String.t()) | nil
}
@type t :: %__MODULE__{
account: Stripe.Account.t(),
id: String.t(),
object: String.t(),
requested_at: Stripe.timestamp(),
requested: boolean | nil,
requirements: requirements | nil,
status: String.t() | nil
}
defstruct [
:account,
:id,
:object,
:requested_at,
:requested,
:requirements,
:status
]
@doc """
Retrieves information about the specified Account Capability.
"""
@spec retrieve(Stripe.id(), params, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
when params: %{:account => Stripe.id()}
def retrieve(id, %{account: _} = params, opts \\ []) do
endpoint = accounts_plural_endpoint(params)
new_request(opts)
|> put_endpoint(endpoint <> "/#{get_id!(id)}")
|> put_method(:get)
|> make_request()
end
@doc """
Updates an existing Account Capability.
"""
@spec update(Stripe.id(), params, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
when params: %{
:account => Stripe.id(),
optional(:requested) => boolean
}
def update(id, %{account: _} = params, opts \\ []) do
endpoint = accounts_plural_endpoint(params)
new_request(opts)
|> put_endpoint(endpoint <> "/#{get_id!(id)}")
|> put_method(:post)
|> put_params(params |> Map.delete(:account))
|> make_request()
end
@doc """
Returns a list of capabilities associated with the account
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{:account => Stripe.id()}
def list(params, opts \\ []) do
endpoint = accounts_plural_endpoint(params)
new_request(opts)
|> put_endpoint(endpoint)
|> put_method(:get)
|> make_request()
end
end