forked from stripe/stripe-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
client.go
132 lines (114 loc) · 3.27 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
//
//
// File generated from our OpenAPI spec
//
//
// Package taxid provides the /customers/{customer}/tax_ids APIs
package taxid
import (
"fmt"
"net/http"
stripe "github.com/HRInnovationLab/stripe-go/v72"
"github.com/HRInnovationLab/stripe-go/v72/form"
)
// Client is used to invoke /customers/{customer}/tax_ids APIs.
type Client struct {
B stripe.Backend
Key string
}
// New creates a new tax id.
func New(params *stripe.TaxIDParams) (*stripe.TaxID, error) {
return getC().New(params)
}
// New creates a new tax id.
func (c Client) New(params *stripe.TaxIDParams) (*stripe.TaxID, error) {
if params == nil {
return nil, fmt.Errorf(
"params cannot be nil, and params.Customer must be set",
)
}
path := stripe.FormatURLPath(
"/v1/customers/%s/tax_ids",
stripe.StringValue(params.Customer),
)
taxid := &stripe.TaxID{}
err := c.B.Call(http.MethodPost, path, c.Key, params, taxid)
return taxid, err
}
// Get returns the details of a tax id.
func Get(id string, params *stripe.TaxIDParams) (*stripe.TaxID, error) {
return getC().Get(id, params)
}
// Get returns the details of a tax id.
func (c Client) Get(id string, params *stripe.TaxIDParams) (*stripe.TaxID, error) {
if params == nil {
return nil, fmt.Errorf(
"params cannot be nil, and params.Customer must be set",
)
}
path := stripe.FormatURLPath(
"/v1/customers/%s/tax_ids/%s",
stripe.StringValue(params.Customer),
id,
)
taxid := &stripe.TaxID{}
err := c.B.Call(http.MethodGet, path, c.Key, params, taxid)
return taxid, err
}
// Del removes a tax id.
func Del(id string, params *stripe.TaxIDParams) (*stripe.TaxID, error) {
return getC().Del(id, params)
}
// Del removes a tax id.
func (c Client) Del(id string, params *stripe.TaxIDParams) (*stripe.TaxID, error) {
if params == nil {
return nil, fmt.Errorf(
"params cannot be nil, and params.Customer must be set",
)
}
path := stripe.FormatURLPath(
"/v1/customers/%s/tax_ids/%s",
stripe.StringValue(params.Customer),
id,
)
taxid := &stripe.TaxID{}
err := c.B.Call(http.MethodDelete, path, c.Key, params, taxid)
return taxid, err
}
// List returns a list of tax ids.
func List(params *stripe.TaxIDListParams) *Iter {
return getC().List(params)
}
// List returns a list of tax ids.
func (c Client) List(listParams *stripe.TaxIDListParams) *Iter {
path := stripe.FormatURLPath(
"/v1/customers/%s/tax_ids",
stripe.StringValue(listParams.Customer),
)
return &Iter{stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
list := &stripe.TaxIDList{}
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
})}
}
// Iter is an iterator for tax ids.
type Iter struct {
*stripe.Iter
}
// TaxID returns the tax id which the iterator is currently pointing to.
func (i *Iter) TaxID() *stripe.TaxID {
return i.Current().(*stripe.TaxID)
}
// TaxIDList 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) TaxIDList() *stripe.TaxIDList {
return i.List().(*stripe.TaxIDList)
}
func getC() Client {
return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key}
}