Packages
stripity_stripe
2.2.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/event.ex
defmodule Stripe.Event do
@moduledoc """
Work with Stripe event objects.
You can:
- Retrieve an event
- List all events
Stripe API reference: https://stripe.com/docs/api#event
"""
use Stripe.Entity
import Stripe.Request
@type event_data :: %{
object: event_data_object,
previous_attributes: map
}
# TODO: add Scheduled query run
@type event_data_object ::
Stripe.Account.t()
| Stripe.ApplicationFee.t()
| Stripe.Charge.t()
| Stripe.Coupon.t()
| Stripe.Customer.t()
| Stripe.FileUpload.t()
| Stripe.Invoice.t()
| Stripe.Invoiceitem.t()
| Stripe.Order.t()
| Stripe.OrderReturn.t()
| Stripe.Payout.t()
| Stripe.Plan.t()
| Stripe.Relay.Product.t()
| Stripe.Product.t()
| Stripe.Recipient.t()
| Stripe.Review.t()
| Stripe.Sku.t()
| Stripe.Source.t()
| Stripe.Transfer.t()
| map
@type event_request :: %{
id: String.t() | nil,
idempotency_key: String.t() | nil
}
@type t :: %__MODULE__{
id: Stripe.id(),
object: String.t(),
api_version: String.t() | nil,
created: Stripe.timestamp(),
data: event_data,
livemode: boolean,
pending_webhooks: non_neg_integer,
request: event_request | nil,
type: String.t()
}
defstruct [
:id,
:object,
:api_version,
:created,
:data,
:livemode,
:pending_webhooks,
:request,
:type,
:account
]
@plural_endpoint "events"
@doc """
Retrieve an event.
"""
@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 """
List all events, going back up to 30 days.
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
optional(:created) => Stripe.date_query(),
optional(:ending_before) => t | Stripe.id(),
optional(:limit) => 1..100,
optional(:starting_after) => t | Stripe.id(),
optional(:type) => String.t(),
optional(:types) => list
} | %{}
def list(params \\ %{}, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint)
|> put_method(:get)
|> put_params(params)
|> cast_to_id([:ending_before, :starting_after])
|> make_request()
end
end