github.com/stripe/stripe-go/v76@v76.25.0/capability/client.go (about) 1 // 2 // 3 // File generated from our OpenAPI spec 4 // 5 // 6 7 // Package capability provides the /accounts/{account}/capabilities APIs 8 package capability 9 10 import ( 11 "fmt" 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 /accounts/{account}/capabilities APIs. 19 type Client struct { 20 B stripe.Backend 21 Key string 22 } 23 24 // Get returns the details of a capability. 25 func Get(id string, params *stripe.CapabilityParams) (*stripe.Capability, error) { 26 return getC().Get(id, params) 27 } 28 29 // Get returns the details of a capability. 30 func (c Client) Get(id string, params *stripe.CapabilityParams) (*stripe.Capability, error) { 31 if params == nil { 32 return nil, fmt.Errorf( 33 "params cannot be nil, and params.Account must be set", 34 ) 35 } 36 path := stripe.FormatURLPath( 37 "/v1/accounts/%s/capabilities/%s", 38 stripe.StringValue(params.Account), 39 id, 40 ) 41 capability := &stripe.Capability{} 42 err := c.B.Call(http.MethodGet, path, c.Key, params, capability) 43 return capability, err 44 } 45 46 // Update updates a capability's properties. 47 func Update(id string, params *stripe.CapabilityParams) (*stripe.Capability, error) { 48 return getC().Update(id, params) 49 } 50 51 // Update updates a capability's properties. 52 func (c Client) Update(id string, params *stripe.CapabilityParams) (*stripe.Capability, error) { 53 path := stripe.FormatURLPath( 54 "/v1/accounts/%s/capabilities/%s", 55 stripe.StringValue(params.Account), 56 id, 57 ) 58 capability := &stripe.Capability{} 59 err := c.B.Call(http.MethodPost, path, c.Key, params, capability) 60 return capability, err 61 } 62 63 // List returns a list of capabilities. 64 func List(params *stripe.CapabilityListParams) *Iter { 65 return getC().List(params) 66 } 67 68 // List returns a list of capabilities. 69 func (c Client) List(listParams *stripe.CapabilityListParams) *Iter { 70 path := stripe.FormatURLPath( 71 "/v1/accounts/%s/capabilities", 72 stripe.StringValue(listParams.Account), 73 ) 74 return &Iter{ 75 Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) { 76 list := &stripe.CapabilityList{} 77 err := c.B.CallRaw(http.MethodGet, path, c.Key, b, p, list) 78 79 ret := make([]interface{}, len(list.Data)) 80 for i, v := range list.Data { 81 ret[i] = v 82 } 83 84 return ret, list, err 85 }), 86 } 87 } 88 89 // Iter is an iterator for capabilities. 90 type Iter struct { 91 *stripe.Iter 92 } 93 94 // Capability returns the capability which the iterator is currently pointing to. 95 func (i *Iter) Capability() *stripe.Capability { 96 return i.Current().(*stripe.Capability) 97 } 98 99 // CapabilityList returns the current list object which the iterator is 100 // currently using. List objects will change as new API calls are made to 101 // continue pagination. 102 func (i *Iter) CapabilityList() *stripe.CapabilityList { 103 return i.List().(*stripe.CapabilityList) 104 } 105 106 func getC() Client { 107 return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key} 108 }