Packages
stripity_stripe
2.17.1
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/subscriptions/test_clock.ex
defmodule Stripe.TestClock do
@moduledoc """
Work with Stripe Test Clock object
You can:
- Create a Test Clock
- Retrieve a Test Clock
- Advance a Test Clock
- Delete a Test Clock
- List Test Clocks
Stripe API reference: https://stripe.com/docs/api/test_clocks
"""
use Stripe.Entity
import Stripe.Request
@type t :: %__MODULE__{
id: Stripe.id(),
object: String.t(),
created: Stripe.timestamp(),
deletes_after: Stripe.timestamp(),
frozen_time: Stripe.timestamp(),
livemode: boolean(),
name: String.t(),
status: String.t()
}
defstruct [
:id,
:object,
:created,
:deletes_after,
:frozen_time,
:livemode,
:name,
:status
]
@plural_endpoint "test_helpers/test_clocks"
@spec create(params, Stripe.options()) :: {:ok, t()} | {:error, Stripe.Error.t()}
when params: %{
:frozen_time => Stripe.timestamp(),
optional(:name) => String.t()
}
def create(params, opts \\ []) do
opts
|> new_request()
|> put_endpoint(@plural_endpoint)
|> put_params(params)
|> put_method(:post)
|> make_request()
end
@spec retrieve(Stripe.id() | t(), Stripe.options()) :: {:ok, t()} | {:error, Stripe.Error.t()}
def retrieve(id, opts \\ []) do
opts
|> new_request()
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}")
|> put_method(:get)
|> make_request()
end
@spec advance(Stripe.id(), params, Stripe.options()) :: {:ok, t()} | {:error, Stripe.Error.t()}
when params: %{
:frozen_time => Stripe.timestamp()
}
def advance(id, params, opts \\ []) do
opts
|> new_request()
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}/advance")
|> put_method(:post)
|> put_params(params)
|> make_request()
end
@spec delete(Stripe.id() | t(), Stripe.options()) :: {:ok, t()} | {:erorr, Stripe.Error.t()}
def delete(id, opts \\ []) do
opts
|> new_request()
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}")
|> put_method(:delete)
|> make_request()
end
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t())} | {:error, Stripe.Error.t()}
when params: %{
optional(:ending_before) => Stripe.timestamp(),
optional(:limit) => 1..100,
optional(:starting_after) => t() | Stripe.id()
}
def list(params \\ %{}, opts \\ []) do
opts
|> new_request()
|> prefix_expansions()
|> put_endpoint(@plural_endpoint)
|> put_method(:get)
|> put_params(params)
|> cast_to_id([:ending_before, :starting_after])
|> make_request()
end
end