Skip to content

Commit

Permalink
Adding endpoint for checkout session line items. (#633)
Browse files Browse the repository at this point in the history
  • Loading branch information
tylerwray committed Dec 29, 2020
1 parent d41186c commit 05a11f0
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 0 deletions.
2 changes: 2 additions & 0 deletions lib/stripe/checkout/session.ex
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,6 @@ defmodule Stripe.Session do
|> put_method(:get)
|> make_request()
end

defdelegate list_line_items(id, opts \\ []), to: Stripe.Checkout.Session.LineItems, as: :list
end
42 changes: 42 additions & 0 deletions lib/stripe/checkout/session/line_items.ex
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
defmodule Stripe.Checkout.Session.LineItems do
@moduledoc false

use Stripe.Entity
import Stripe.Request

@type t :: %__MODULE__{
id: Stripe.id(),
object: String.t(),
amount_subtotal: non_neg_integer,
amount_total: non_neg_integer,
currency: String.t(),
description: String.t(),
price: Stripe.Price.t(),
quantity: non_neg_integer
}

defstruct [
:id,
:object,
:amount_subtotal,
:amount_total,
:currency,
:description,
:price,
:quantity
]

@plural_endpoint "checkout/sessions"

@doc """
List line items on a checkout session.
"""
@spec list(Stripe.id(), Stripe.options()) ::
{:ok, Stripe.List.t(t())} | {:error, Stripe.Error.t()}
def list(id, opts \\ []) do
new_request(opts)
|> put_endpoint(@plural_endpoint <> "/#{get_id!(id)}/" <> "line_items")
|> put_method(:get)
|> make_request()
end
end
7 changes: 7 additions & 0 deletions test/stripe/checkout/session_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,11 @@ defmodule Stripe.SessionTest do
assert_stripe_requested(:get, "/v1/checkout/sessions/cs_123")
end
end

describe "list_line_items/2" do
test "lists line items" do
assert {:ok, %Stripe.List{}} = Stripe.Session.list_line_items("cs_123")
assert_stripe_requested(:get, "/v1/checkout/sessions/cs_123/line_items")
end
end
end

0 comments on commit 05a11f0

Please sign in to comment.