github.com/stripe/stripe-go/v76@v76.25.0/countryspec/client.go (about) 1 // 2 // 3 // File generated from our OpenAPI spec 4 // 5 // 6 7 // Package countryspec provides the /country_specs APIs 8 package countryspec 9 10 import ( 11 "net/http" 12 13 stripe "github.com/stripe/stripe-go/v76" 14 "github.com/stripe/stripe-go/v76/form" 15 ) 16 17 // Client is used to invoke /country_specs APIs. 18 type Client struct { 19 B stripe.Backend 20 Key string 21 } 22 23 // Get returns the details of a country spec. 24 func Get(id string, params *stripe.CountrySpecParams) (*stripe.CountrySpec, error) { 25 return getC().Get(id, params) 26 } 27 28 // Get returns the details of a country spec. 29 func (c Client) Get(id string, params *stripe.CountrySpecParams) (*stripe.CountrySpec, error) { 30 path := stripe.FormatURLPath("/v1/country_specs/%s", id) 31 countryspec := &stripe.CountrySpec{} 32 err := c.B.Call(http.MethodGet, path, c.Key, params, countryspec) 33 return countryspec, err 34 } 35 36 // List returns a list of country specs. 37 func List(params *stripe.CountrySpecListParams) *Iter { 38 return getC().List(params) 39 } 40 41 // List returns a list of country specs. 42 func (c Client) List(listParams *stripe.CountrySpecListParams) *Iter { 43 return &Iter{ 44 Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) { 45 list := &stripe.CountrySpecList{} 46 err := c.B.CallRaw(http.MethodGet, "/v1/country_specs", c.Key, b, p, list) 47 48 ret := make([]interface{}, len(list.Data)) 49 for i, v := range list.Data { 50 ret[i] = v 51 } 52 53 return ret, list, err 54 }), 55 } 56 } 57 58 // Iter is an iterator for country specs. 59 type Iter struct { 60 *stripe.Iter 61 } 62 63 // CountrySpec returns the country spec which the iterator is currently pointing to. 64 func (i *Iter) CountrySpec() *stripe.CountrySpec { 65 return i.Current().(*stripe.CountrySpec) 66 } 67 68 // CountrySpecList returns the current list object which the iterator is 69 // currently using. List objects will change as new API calls are made to 70 // continue pagination. 71 func (i *Iter) CountrySpecList() *stripe.CountrySpecList { 72 return i.List().(*stripe.CountrySpecList) 73 } 74 75 func getC() Client { 76 return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key} 77 }