Packages
stripity_stripe
2.2.3
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/usage.ex
defmodule Stripe.SubscriptionItem.Usage do
@moduledoc """
Work with Stripe usage record objects.
Stripe API reference: https://stripe.com/docs/api/usage_records
"""
use Stripe.Entity
import Stripe.Request
@type t :: %__MODULE__{
id: Stripe.id(),
object: String.t(),
invoice: Stripe.id() | nil,
livemode: boolean,
quantity: non_neg_integer,
subscription_item: Stripe.id() | Stripe.SubscriptionItem.t(),
timestamp: Stripe.timestamp()
}
defstruct [
:id,
:object,
:invoice,
:livemode,
:quantity,
:subscription_item,
:timestamp
]
@plural_endpoint "subscription_items"
@doc """
Creates a usage record for a specified subscription item id and date, and fills it with a quantity.
"""
def create(id, params, opts \\ [])
@doc """
Creates a usage record for a specified subscription item id and date, and fills it with a quantity.
"""
@spec create(Stripe.id(), params, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
when params: %{
:quantity => float | pos_integer | 0,
:timestamp => Stripe.timestamp() | non_neg_integer,
optional(:action) => String.t()
}
def create(id, params, opts) do
new_request(opts)
|> put_endpoint("#{@plural_endpoint}/#{id}/usage_records")
|> put_method(:post)
|> put_params(params)
|> make_request()
end
@doc """
List all subscription item period summaries
"""
@spec list(Stripe.id(), 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(id, params \\ %{}, opts \\ []) do
new_request(opts)
|> put_endpoint("#{@plural_endpoint}/#{id}/usage_record_summaries")
|> put_method(:get)
|> put_params(params)
|> cast_to_id([:ending_before, :starting_after])
|> make_request()
end
end