Skip to content

Commit

Permalink
Improve Stripe.List
Browse files Browse the repository at this point in the history
  • Loading branch information
joshsmith committed Nov 26, 2017
1 parent 85f32b7 commit 8af74a5
Show file tree
Hide file tree
Showing 24 changed files with 41 additions and 35 deletions.
4 changes: 2 additions & 2 deletions lib/stripe/connect/account.ex
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ defmodule Stripe.Account do
details_submitted: boolean,
display_name: String.t() | nil,
email: String.t() | nil,
external_accounts: Stripe.List.of(Stripe.BankAccount.t() | Stripe.Card.t()),
external_accounts: Stripe.List.t(Stripe.BankAccount.t() | Stripe.Card.t()),
keys: keys | nil,
legal_entity: legal_entity,
metadata: Stripe.Types.metadata(),
Expand Down Expand Up @@ -312,7 +312,7 @@ defmodule Stripe.Account do
@doc """
List all connected accounts.
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@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,
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/connect/application_fee.ex
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ defmodule Stripe.ApplicationFee do
livemode: boolean,
originating_transaction: Stripe.id() | Stripe.Charge.t(),
refunded: boolean,
refunds: Stripe.List.of(Stripe.FeeRefund.t())
refunds: Stripe.List.t(Stripe.FeeRefund.t())
}

defstruct [
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/connect/country_spec.ex
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ defmodule Stripe.CountrySpec do
@doc """
List all country specs.
"""
@spec list(map, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(map, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
def list(params \\ %{}, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint)
Expand Down
4 changes: 2 additions & 2 deletions lib/stripe/connect/external_account.ex
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ defmodule Stripe.ExternalAccount do
Takes either `:bank_account` or `:card` to determine which object to list.
"""
@spec list(atom, map, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(atom, map, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
def list(atom, params, opts \\ [])
def list(:bank_account, %{account: _} = params, opts) do
endpoint = params |> accounts_plural_endpoint()
Expand All @@ -106,7 +106,7 @@ defmodule Stripe.ExternalAccount do
do_list(endpoint, params, opts)
end

@spec do_list(String.t, map, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec do_list(String.t, map, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
defp do_list(endpoint, params, opts) do
new_request(opts)
|> put_endpoint(endpoint)
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/connect/recipient.ex
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ defmodule Stripe.Recipient do
status: String.t()
}
| nil,
cards: Stripe.List.of(Stripe.Card.t()),
cards: Stripe.List.t(Stripe.Card.t()),
created: Stripe.timestamp(),
default_card: Stripe.id() | Stripe.Card.t(),
description: String.t(),
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/connect/transfer.ex
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ defmodule Stripe.Transfer do
destination_payment: String.t(),
livemode: boolean,
metadata: Stripe.Types.metadata(),
reversals: Stripe.List.of(Stripe.Reversal.t()),
reversals: Stripe.List.t(Stripe.TransferReversal.t()),
reversed: boolean,
source_transaction: Stripe.id() | Stripe.Charge.t(),
source_type: String.t(),
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/core_resources/balance_transaction.ex
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ defmodule Stripe.BalanceTransaction do
See `t:Stripe.BalanceTransaction.All.t/0` or the
[Stripe docs](https://stripe.com/docs/api#balance_history) for parameter structure.
"""
@spec all(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec all(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
optional(:available_on) => String.t() | Stripe.date_query(),
optional(:created) => String.t() | Stripe.date_query(),
Expand Down
4 changes: 2 additions & 2 deletions lib/stripe/core_resources/charge.ex
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ defmodule Stripe.Charge do
receipt_email: String.t() | nil,
receipt_number: String.t() | nil,
refunded: boolean,
refunds: Stripe.List.of(Stripe.Refund.t()),
refunds: Stripe.List.t(Stripe.Refund.t()),
review: Stripe.id() | Stripe.Review.t() | nil,
shipping: Stripe.Types.shipping() | nil,
source: Stripe.Card.t() | map,
Expand Down Expand Up @@ -281,7 +281,7 @@ defmodule Stripe.Charge do
See the [Stripe docs](https://stripe.com/docs/api#list_charges).
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
optional(:created) => Stripe.date_query(),
optional(:customer) => Stripe.Customer.t() | Stripe.id(),
Expand Down
6 changes: 3 additions & 3 deletions lib/stripe/core_resources/customer.ex
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ defmodule Stripe.Customer do
livemode: boolean,
metadata: Stripe.Types.metadata(),
shipping: Stripe.Types.shipping() | nil,
sources: Stripe.List.of(Stripe.Source.t()),
subscriptions: Stripe.List.of(Stripe.Subscription.t())
sources: Stripe.List.t(Stripe.Source.t()),
subscriptions: Stripe.List.t(Stripe.Subscription.t())
}

defstruct [
Expand Down Expand Up @@ -128,7 +128,7 @@ defmodule Stripe.Customer do
@doc """
List all customers.
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
ending_before: t | Stripe.id() | nil,
limit: 1..100 | nil,
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/core_resources/event.ex
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ defmodule Stripe.Event do
@doc """
List all events, going back up to 30 days.
"""
@spec list(map, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(map, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
def list(params \\ %{}, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint)
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/core_resources/file_upload.ex
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ defmodule Stripe.FileUpload do
@doc """
List all file uploads, going back up to 30 days.
"""
@spec list(map, Stripe.options) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t}
@spec list(map, Stripe.options) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t}
def list(params \\ %{}, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint)
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/core_resources/payout.ex
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ defmodule Stripe.Payout do
See the [Stripe docs](https://stripe.com/docs/api#list_payouts).
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
arrival_date: Stripe.date_query(),
created: Stripe.date_query(),
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/core_resources/refund.ex
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ defmodule Stripe.Refund do
See the [Stripe docs](https://stripe.com/docs/api#list_refunds).
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
charge: Stripe.id() | Stripe.Charge.t(),
ending_before: Stripe.id() | t,
Expand Down
10 changes: 9 additions & 1 deletion lib/stripe/list.ex
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,15 @@ defmodule Stripe.List do
"""
use Stripe.Entity

@type t :: %__MODULE__{}
@type value :: term

@type t(value) :: %__MODULE__{
object: String.t(),
data: [value] | [],
has_more: boolean,
total_count: integer | nil,
url: String.t()
}

defstruct [:object, :data, :has_more, :total_count, :url]
end
2 changes: 1 addition & 1 deletion lib/stripe/payment_methods/bank_account.ex
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ defmodule Stripe.BankAccount do
@doc """
List all bank accounts.
"""
@spec list(map, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(map, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
def list(%{customer: _} = params, opts \\ []) do
endpoint = params |> plural_endpoint()
params = params |> Map.put(:object, "card")
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/payment_methods/card.ex
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ defmodule Stripe.Card do
@doc """
List all cards.
"""
@spec list(map, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(map, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
def list(%{customer: _} = params, opts \\ []) do
endpoint = params |> plural_endpoint()
params = params |> Map.put(:object, "card")
Expand Down
4 changes: 2 additions & 2 deletions lib/stripe/relay/order.ex
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ defmodule Stripe.Order do
customer: Stripe.id() | Stripe.Customer.t(),
email: String.t(),
external_coupon_code: String.t(),
items: Stripe.List.of(Stripe.OrderItem.t()),
items: Stripe.List.t(Stripe.OrderItem.t()),
livemode: boolean,
metadata: Stripe.Types.metadata(),
returns: Stripe.List.of(Stripe.Return.t()),
returns: Stripe.List.t(Stripe.OrderReturn.t()),
selected_shipping_method: String.t(),
shipping: %{
address: %{
Expand Down
4 changes: 2 additions & 2 deletions lib/stripe/relay/order_return.ex
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ defmodule Stripe.OrderReturn do
amount: pos_integer,
created: Stripe.timestamp(),
currency: String.t(),
items: Stripe.List.of(Stripe.OrderItem.t()),
items: Stripe.List.t(Stripe.OrderItem.t()),
livemode: boolean,
order: Stripe.id() | Stripe.Order.t() | nil,
refund: Stripe.id() | Stripe.Refund.t() | nil
Expand Down Expand Up @@ -48,7 +48,7 @@ defmodule Stripe.OrderReturn do
@doc """
List all returns.
"""
@spec list(Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
def list(opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint)
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/relay/product.ex
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ defmodule Stripe.Product do
width: float
},
shippable: boolean,
skus: Stripe.List.of(Stripe.SKU.t()),
skus: Stripe.List.t(Stripe.SKU.t()),
updated: Stripe.timestamp(),
url: String.t()
}
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/subscriptions/coupon.ex
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ defmodule Stripe.Coupon do
@doc """
List all coupons.
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
created: Stripe.date_query(),
ending_before: t | Stripe.id(),
Expand Down
4 changes: 2 additions & 2 deletions lib/stripe/subscriptions/invoice.ex
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ defmodule Stripe.Invoice do
discount: Stripe.Discount.t() | nil,
ending_balance: integer | nil,
forgiven: boolean,
lines: Stripe.List.of(Stripe.LineItem.t()),
lines: Stripe.List.t(Stripe.LineItem.t()),
livemode: boolean,
metadata: Stripe.Types.metadata() | nil,
next_payment_attempt: Stripe.timestamp() | nil,
Expand Down Expand Up @@ -162,7 +162,7 @@ defmodule Stripe.Invoice do
@doc """
List all invoices.
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
customer: Stripe.Customer.t() | Stripe.id(),
date: Stripe.date_query(),
Expand Down
4 changes: 1 addition & 3 deletions lib/stripe/subscriptions/line_item.ex
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ defmodule Stripe.LineItem do
description: String.t(),
discountable: boolean,
livemode: boolean,
metadata: %{
optional(String.t()) => String.t()
},
metadata: Stripe.Types.metadata(),
period: %{
start: Stripe.timestamp(),
end: Stripe.timestamp()
Expand Down
2 changes: 1 addition & 1 deletion lib/stripe/subscriptions/plan.ex
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ defmodule Stripe.Plan do
@doc """
List all plans.
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
created: Stripe.date_query() | nil,
ending_before: t | Stripe.id() | nil,
Expand Down
4 changes: 2 additions & 2 deletions lib/stripe/subscriptions/subscription.ex
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ defmodule Stripe.Subscription do
customer: Stripe.id() | Stripe.Customer.t(),
discount: Stripe.Discount.t() | nil,
ended_at: Stripe.timestamp() | nil,
items: Stripe.List.of(Stripe.SubscriptionItem.t()),
items: Stripe.List.t(Stripe.SubscriptionItem.t()),
livemode: boolean,
metadata: Stripe.Types.metadata(),
plan: Stripe.Plan.t() | nil,
Expand Down Expand Up @@ -154,7 +154,7 @@ defmodule Stripe.Subscription do
@doc """
List all subscriptions.
"""
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.of(t)} | {:error, Stripe.Error.t()}
@spec list(params, Stripe.options()) :: {:ok, Stripe.List.t(t)} | {:error, Stripe.Error.t()}
when params: %{
optional(:created) => Stripe.date_query(),
optional(:customer) => Stripe.Customer.t() | Stripe.id(),
Expand Down

0 comments on commit 8af74a5

Please sign in to comment.