Packages
stripity_stripe
2.0.0-alpha.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/request.ex
defmodule Stripe.Request do
alias Stripe.Util
@spec create(String.t, struct, map, module, Keyword.t) :: {:ok, struct} | {:error, Exception.t}
def create(endpoint, struct, valid_keys, module, opts) do
body =
struct
|> Map.take(valid_keys)
|> Util.drop_nil_keys()
case Stripe.request(:post, endpoint, body, %{}, opts) do
{:ok, result} -> {:ok, Util.stripe_map_to_struct(module, result)}
{:error, error} -> {:error, error}
end
end
@spec retrieve(String.t, module, Keyword.t) :: {:ok, struct} | {:error, Exception.t}
def retrieve(endpoint, module, opts) do
case Stripe.request(:get, endpoint, %{}, %{}, opts) do
{:ok, result} -> {:ok, Util.stripe_map_to_struct(module, result)}
{:error, error} -> {:error, error}
end
end
@spec update(String.t, map, map, struct, Keyword.t) :: {:ok, struct} | {:error, Exception.t}
def update(endpoint, changes, valid_keys, module, opts) do
body =
changes
|> Util.map_keys_to_atoms()
|> Map.take(valid_keys)
|> Util.drop_nil_keys()
case Stripe.request(:post, endpoint, body, %{}, opts) do
{:ok, result} -> {:ok, Util.stripe_map_to_struct(module, result)}
{:error, error} -> {:error, error}
end
end
@spec delete(String.t, Keyword.t) :: :ok | {:error, Exception.t}
def delete(endpoint, opts) do
case Stripe.request(:delete, endpoint, %{}, %{}, opts) do
{:ok, _} -> :ok
{:error, error} -> {:error, error}
end
end
end