-
Notifications
You must be signed in to change notification settings - Fork 448
/
client.go
121 lines (101 loc) · 4.44 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
//
//
// File generated from our OpenAPI spec
//
//
// Package invoiceitem provides the /invoiceitems APIs
package invoiceitem
import (
"net/http"
stripe "github.com/stripe/stripe-go/v78"
"github.com/stripe/stripe-go/v78/form"
)
// Client is used to invoke /invoiceitems APIs.
type Client struct {
B stripe.Backend
Key string
}
// Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified.
func New(params *stripe.InvoiceItemParams) (*stripe.InvoiceItem, error) {
return getC().New(params)
}
// Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified.
func (c Client) New(params *stripe.InvoiceItemParams) (*stripe.InvoiceItem, error) {
invoiceitem := &stripe.InvoiceItem{}
err := c.B.Call(
http.MethodPost,
"/v1/invoiceitems",
c.Key,
params,
invoiceitem,
)
return invoiceitem, err
}
// Retrieves the invoice item with the given ID.
func Get(id string, params *stripe.InvoiceItemParams) (*stripe.InvoiceItem, error) {
return getC().Get(id, params)
}
// Retrieves the invoice item with the given ID.
func (c Client) Get(id string, params *stripe.InvoiceItemParams) (*stripe.InvoiceItem, error) {
path := stripe.FormatURLPath("/v1/invoiceitems/%s", id)
invoiceitem := &stripe.InvoiceItem{}
err := c.B.Call(http.MethodGet, path, c.Key, params, invoiceitem)
return invoiceitem, err
}
// Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it's attached to is closed.
func Update(id string, params *stripe.InvoiceItemParams) (*stripe.InvoiceItem, error) {
return getC().Update(id, params)
}
// Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it's attached to is closed.
func (c Client) Update(id string, params *stripe.InvoiceItemParams) (*stripe.InvoiceItem, error) {
path := stripe.FormatURLPath("/v1/invoiceitems/%s", id)
invoiceitem := &stripe.InvoiceItem{}
err := c.B.Call(http.MethodPost, path, c.Key, params, invoiceitem)
return invoiceitem, err
}
// Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice.
func Del(id string, params *stripe.InvoiceItemParams) (*stripe.InvoiceItem, error) {
return getC().Del(id, params)
}
// Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they're not attached to invoices, or if it's attached to a draft invoice.
func (c Client) Del(id string, params *stripe.InvoiceItemParams) (*stripe.InvoiceItem, error) {
path := stripe.FormatURLPath("/v1/invoiceitems/%s", id)
invoiceitem := &stripe.InvoiceItem{}
err := c.B.Call(http.MethodDelete, path, c.Key, params, invoiceitem)
return invoiceitem, err
}
// Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first.
func List(params *stripe.InvoiceItemListParams) *Iter {
return getC().List(params)
}
// Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first.
func (c Client) List(listParams *stripe.InvoiceItemListParams) *Iter {
return &Iter{
Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
list := &stripe.InvoiceItemList{}
err := c.B.CallRaw(http.MethodGet, "/v1/invoiceitems", 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 invoice items.
type Iter struct {
*stripe.Iter
}
// InvoiceItem returns the invoice item which the iterator is currently pointing to.
func (i *Iter) InvoiceItem() *stripe.InvoiceItem {
return i.Current().(*stripe.InvoiceItem)
}
// InvoiceItemList 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) InvoiceItemList() *stripe.InvoiceItemList {
return i.List().(*stripe.InvoiceItemList)
}
func getC() Client {
return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key}
}