github.com/stripe/stripe-go/v76@v76.25.0/issuing/cardholder/client.go (about) 1 // 2 // 3 // File generated from our OpenAPI spec 4 // 5 // 6 7 // Package cardholder provides the /issuing/cardholders APIs 8 // For more details, see: https://stripe.com/docs/api/?lang=go#issuing_cardholders 9 package cardholder 10 11 import ( 12 "net/http" 13 14 stripe "github.com/stripe/stripe-go/v76" 15 "github.com/stripe/stripe-go/v76/form" 16 ) 17 18 // Client is used to invoke /issuing/cardholders APIs. 19 type Client struct { 20 B stripe.Backend 21 Key string 22 } 23 24 // New creates a new issuing cardholder. 25 func New(params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) { 26 return getC().New(params) 27 } 28 29 // New creates a new issuing cardholder. 30 func (c Client) New(params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) { 31 cardholder := &stripe.IssuingCardholder{} 32 err := c.B.Call( 33 http.MethodPost, 34 "/v1/issuing/cardholders", 35 c.Key, 36 params, 37 cardholder, 38 ) 39 return cardholder, err 40 } 41 42 // Get returns the details of an issuing cardholder. 43 func Get(id string, params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) { 44 return getC().Get(id, params) 45 } 46 47 // Get returns the details of an issuing cardholder. 48 func (c Client) Get(id string, params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) { 49 path := stripe.FormatURLPath("/v1/issuing/cardholders/%s", id) 50 cardholder := &stripe.IssuingCardholder{} 51 err := c.B.Call(http.MethodGet, path, c.Key, params, cardholder) 52 return cardholder, err 53 } 54 55 // Update updates an issuing cardholder's properties. 56 func Update(id string, params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) { 57 return getC().Update(id, params) 58 } 59 60 // Update updates an issuing cardholder's properties. 61 func (c Client) Update(id string, params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) { 62 path := stripe.FormatURLPath("/v1/issuing/cardholders/%s", id) 63 cardholder := &stripe.IssuingCardholder{} 64 err := c.B.Call(http.MethodPost, path, c.Key, params, cardholder) 65 return cardholder, err 66 } 67 68 // List returns a list of issuing cardholders. 69 func List(params *stripe.IssuingCardholderListParams) *Iter { 70 return getC().List(params) 71 } 72 73 // List returns a list of issuing cardholders. 74 func (c Client) List(listParams *stripe.IssuingCardholderListParams) *Iter { 75 return &Iter{ 76 Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) { 77 list := &stripe.IssuingCardholderList{} 78 err := c.B.CallRaw(http.MethodGet, "/v1/issuing/cardholders", c.Key, b, p, list) 79 80 ret := make([]interface{}, len(list.Data)) 81 for i, v := range list.Data { 82 ret[i] = v 83 } 84 85 return ret, list, err 86 }), 87 } 88 } 89 90 // Iter is an iterator for issuing cardholders. 91 type Iter struct { 92 *stripe.Iter 93 } 94 95 // IssuingCardholder returns the issuing cardholder which the iterator is currently pointing to. 96 func (i *Iter) IssuingCardholder() *stripe.IssuingCardholder { 97 return i.Current().(*stripe.IssuingCardholder) 98 } 99 100 // IssuingCardholderList returns the current list object which the iterator is 101 // currently using. List objects will change as new API calls are made to 102 // continue pagination. 103 func (i *Iter) IssuingCardholderList() *stripe.IssuingCardholderList { 104 return i.List().(*stripe.IssuingCardholderList) 105 } 106 107 func getC() Client { 108 return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key} 109 }