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/core_resources/webhook_endpoint.ex
defmodule Stripe.WebhookEndpoint do
@moduledoc """
Work with [Stripe `webhook_endpoint` objects](https://stripe.com/docs/api/webhook_endpoints).
You can:
- [Create a webhook_endpoint](https://stripe.com/docs/api/webhook_endpoints/create)
- [Retrieve a webhook_endpoint](https://stripe.com/docs/api/webhook_endpoints/retrieve)
- [Update a webhook_endpoint](https://stripe.com/docs/api/webhook_endpoints/update)
- [List all webhook_endpoint](https://stripe.com/docs/api/webhook_endpoints/list)
"""
use Stripe.Entity
import Stripe.Request
require Stripe.Util
@type t :: %__MODULE__{
application: String.t() | nil,
created: Stripe.timestamp(),
deleted: boolean,
description: String.t(),
enabled_events: list(String.t()),
id: Stripe.id(),
livemode: boolean,
metadata: map,
object: String.t(),
secret: String.t() | nil,
status: String.t(),
url: String.t()
}
defstruct [
:application,
:created,
:deleted,
:description,
:enabled_events,
:id,
:livemode,
:metadata,
:object,
:secret,
:status,
:url
]
@plural_endpoint "webhook_endpoints"
@doc """
Create a webhook endpoint.
See the [Stripe docs](https://stripe.com/docs/api/webhook_endpoints/create).
"""
@spec create(params, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
when params:
%{
optional(:api_version) => String.t(),
optional(:connect) => boolean,
optional(:description) => String.t(),
:enabled_events => list(String.t()),
optional(:metadata) => map,
:url => String.t()
}
| %{}
def create(params, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint)
|> put_method(:post)
|> put_params(params)
|> make_request()
end
@doc """
Retrieve a webhook endpoint.
See the [Stripe docs](https://stripe.com/docs/api/webhook_endpoints/retrieve).
"""
@spec retrieve(Stripe.id() | t, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
def retrieve(id, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}")
|> put_method(:get)
|> make_request()
end
@doc """
Update a webhook endpoint.
See the [Stripe docs](https://stripe.com/docs/api/webhook_endpoints/update).
"""
@spec update(Stripe.id() | t, params, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
when params:
%{
optional(:description) => String.t(),
optional(:disabled) => boolean,
optional(:enabled_events) => list(String.t()),
optional(:metadata) => map,
optional(:url) => String.t()
}
| %{}
def update(id, params, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}")
|> put_method(:post)
|> put_params(params)
|> make_request()
end
@doc """
List all webhook endpoints.
See the [Stripe docs](https://stripe.com/docs/api/webhook_endpoints/list).
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params:
%{
optional(:ending_before) => t | Stripe.id(),
optional(:limit) => 1..100,
optional(:starting_after) => t | Stripe.id()
}
| %{}
def list(params \\ %{}, opts \\ []) do
new_request(opts)
|> prefix_expansions()
|> put_endpoint(@plural_endpoint)
|> put_method(:get)
|> put_params(params)
|> cast_to_id([:ending_before, :starting_after])
|> make_request()
end
@doc """
Delete a webhook endpoint.
See the [Stripe docs](https://stripe.com/docs/api/webhook_endpoints/delete).
"""
@spec delete(Stripe.id() | t, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
def delete(id, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}")
|> put_method(:delete)
|> make_request()
end
end