-
Notifications
You must be signed in to change notification settings - Fork 459
/
client.go
151 lines (126 loc) · 4.57 KB
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
//
//
// File generated from our OpenAPI spec
//
//
// Package session provides the /checkout/sessions APIs
package session
import (
"net/http"
stripe "github.com/stripe/stripe-go/v74"
"github.com/stripe/stripe-go/v74/form"
)
// Client is used to invoke /checkout/sessions APIs.
type Client struct {
B stripe.Backend
Key string
}
// New creates a new checkout session.
func New(params *stripe.CheckoutSessionParams) (*stripe.CheckoutSession, error) {
return getC().New(params)
}
// New creates a new checkout session.
func (c Client) New(params *stripe.CheckoutSessionParams) (*stripe.CheckoutSession, error) {
session := &stripe.CheckoutSession{}
err := c.B.Call(
http.MethodPost,
"/v1/checkout/sessions",
c.Key,
params,
session,
)
return session, err
}
// Get returns the details of a checkout session.
func Get(id string, params *stripe.CheckoutSessionParams) (*stripe.CheckoutSession, error) {
return getC().Get(id, params)
}
// Get returns the details of a checkout session.
func (c Client) Get(id string, params *stripe.CheckoutSessionParams) (*stripe.CheckoutSession, error) {
path := stripe.FormatURLPath("/v1/checkout/sessions/%s", id)
session := &stripe.CheckoutSession{}
err := c.B.Call(http.MethodGet, path, c.Key, params, session)
return session, err
}
// Expire is the method for the `POST /v1/checkout/sessions/{session}/expire` API.
func Expire(id string, params *stripe.CheckoutSessionExpireParams) (*stripe.CheckoutSession, error) {
return getC().Expire(id, params)
}
// Expire is the method for the `POST /v1/checkout/sessions/{session}/expire` API.
func (c Client) Expire(id string, params *stripe.CheckoutSessionExpireParams) (*stripe.CheckoutSession, error) {
path := stripe.FormatURLPath("/v1/checkout/sessions/%s/expire", id)
session := &stripe.CheckoutSession{}
err := c.B.Call(http.MethodPost, path, c.Key, params, session)
return session, err
}
// List returns a list of checkout sessions.
func List(params *stripe.CheckoutSessionListParams) *Iter {
return getC().List(params)
}
// List returns a list of checkout sessions.
func (c Client) List(listParams *stripe.CheckoutSessionListParams) *Iter {
return &Iter{
Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
list := &stripe.CheckoutSessionList{}
err := c.B.CallRaw(http.MethodGet, "/v1/checkout/sessions", c.Key, b, p, list)
ret := make([]interface{}, len(list.Data))
for i, v := range list.Data {
ret[i] = v
}
return ret, list, err
}),
}
}
// Iter is an iterator for checkout sessions.
type Iter struct {
*stripe.Iter
}
// CheckoutSession returns the checkout session which the iterator is currently pointing to.
func (i *Iter) CheckoutSession() *stripe.CheckoutSession {
return i.Current().(*stripe.CheckoutSession)
}
// CheckoutSessionList returns the current list object which the iterator is
// currently using. List objects will change as new API calls are made to
// continue pagination.
func (i *Iter) CheckoutSessionList() *stripe.CheckoutSessionList {
return i.List().(*stripe.CheckoutSessionList)
}
// ListLineItems is the method for the `GET /v1/checkout/sessions/{session}/line_items` API.
func ListLineItems(params *stripe.CheckoutSessionListLineItemsParams) *LineItemIter {
return getC().ListLineItems(params)
}
// ListLineItems is the method for the `GET /v1/checkout/sessions/{session}/line_items` API.
func (c Client) ListLineItems(listParams *stripe.CheckoutSessionListLineItemsParams) *LineItemIter {
path := stripe.FormatURLPath(
"/v1/checkout/sessions/%s/line_items",
stripe.StringValue(listParams.Session),
)
return &LineItemIter{
Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
list := &stripe.LineItemList{}
err := c.B.CallRaw(http.MethodGet, path, c.Key, b, p, list)
ret := make([]interface{}, len(list.Data))
for i, v := range list.Data {
ret[i] = v
}
return ret, list, err
}),
}
}
// LineItemIter is an iterator for line items.
type LineItemIter struct {
*stripe.Iter
}
// LineItem returns the line item which the iterator is currently pointing to.
func (i *LineItemIter) LineItem() *stripe.LineItem {
return i.Current().(*stripe.LineItem)
}
// LineItemList returns the current list object which the iterator is
// currently using. List objects will change as new API calls are made to
// continue pagination.
func (i *LineItemIter) LineItemList() *stripe.LineItemList {
return i.List().(*stripe.LineItemList)
}
func getC() Client {
return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key}
}