github.com/stripe/stripe-go/v76@v76.25.0/customerbalancetransaction/client.go (about) 1 // 2 // 3 // File generated from our OpenAPI spec 4 // 5 // 6 7 // Package customerbalancetransaction provides the /customers/{customer}/balance_transactions APIs 8 package customerbalancetransaction 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 /customers/{customer}/balance_transactions APIs. 19 type Client struct { 20 B stripe.Backend 21 Key string 22 } 23 24 // New creates a new customer balance transaction. 25 func New(params *stripe.CustomerBalanceTransactionParams) (*stripe.CustomerBalanceTransaction, error) { 26 return getC().New(params) 27 } 28 29 // New creates a new customer balance transaction. 30 func (c Client) New(params *stripe.CustomerBalanceTransactionParams) (*stripe.CustomerBalanceTransaction, error) { 31 if params == nil { 32 return nil, fmt.Errorf( 33 "params cannot be nil, and params.Customer must be set", 34 ) 35 } 36 path := stripe.FormatURLPath( 37 "/v1/customers/%s/balance_transactions", 38 stripe.StringValue(params.Customer), 39 ) 40 customerbalancetransaction := &stripe.CustomerBalanceTransaction{} 41 err := c.B.Call( 42 http.MethodPost, 43 path, 44 c.Key, 45 params, 46 customerbalancetransaction, 47 ) 48 return customerbalancetransaction, err 49 } 50 51 // Get returns the details of a customer balance transaction. 52 func Get(id string, params *stripe.CustomerBalanceTransactionParams) (*stripe.CustomerBalanceTransaction, error) { 53 return getC().Get(id, params) 54 } 55 56 // Get returns the details of a customer balance transaction. 57 func (c Client) Get(id string, params *stripe.CustomerBalanceTransactionParams) (*stripe.CustomerBalanceTransaction, error) { 58 if params == nil { 59 return nil, fmt.Errorf( 60 "params cannot be nil, and params.Customer must be set", 61 ) 62 } 63 path := stripe.FormatURLPath( 64 "/v1/customers/%s/balance_transactions/%s", 65 stripe.StringValue(params.Customer), 66 id, 67 ) 68 customerbalancetransaction := &stripe.CustomerBalanceTransaction{} 69 err := c.B.Call( 70 http.MethodGet, 71 path, 72 c.Key, 73 params, 74 customerbalancetransaction, 75 ) 76 return customerbalancetransaction, err 77 } 78 79 // Update updates a customer balance transaction's properties. 80 func Update(id string, params *stripe.CustomerBalanceTransactionParams) (*stripe.CustomerBalanceTransaction, error) { 81 return getC().Update(id, params) 82 } 83 84 // Update updates a customer balance transaction's properties. 85 func (c Client) Update(id string, params *stripe.CustomerBalanceTransactionParams) (*stripe.CustomerBalanceTransaction, error) { 86 path := stripe.FormatURLPath( 87 "/v1/customers/%s/balance_transactions/%s", 88 stripe.StringValue(params.Customer), 89 id, 90 ) 91 customerbalancetransaction := &stripe.CustomerBalanceTransaction{} 92 err := c.B.Call( 93 http.MethodPost, 94 path, 95 c.Key, 96 params, 97 customerbalancetransaction, 98 ) 99 return customerbalancetransaction, err 100 } 101 102 // List returns a list of customer balance transactions. 103 func List(params *stripe.CustomerBalanceTransactionListParams) *Iter { 104 return getC().List(params) 105 } 106 107 // List returns a list of customer balance transactions. 108 func (c Client) List(listParams *stripe.CustomerBalanceTransactionListParams) *Iter { 109 path := stripe.FormatURLPath( 110 "/v1/customers/%s/balance_transactions", 111 stripe.StringValue(listParams.Customer), 112 ) 113 return &Iter{ 114 Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) { 115 list := &stripe.CustomerBalanceTransactionList{} 116 err := c.B.CallRaw(http.MethodGet, path, c.Key, b, p, list) 117 118 ret := make([]interface{}, len(list.Data)) 119 for i, v := range list.Data { 120 ret[i] = v 121 } 122 123 return ret, list, err 124 }), 125 } 126 } 127 128 // Iter is an iterator for customer balance transactions. 129 type Iter struct { 130 *stripe.Iter 131 } 132 133 // CustomerBalanceTransaction returns the customer balance transaction which the iterator is currently pointing to. 134 func (i *Iter) CustomerBalanceTransaction() *stripe.CustomerBalanceTransaction { 135 return i.Current().(*stripe.CustomerBalanceTransaction) 136 } 137 138 // CustomerBalanceTransactionList returns the current list object which the iterator is 139 // currently using. List objects will change as new API calls are made to 140 // continue pagination. 141 func (i *Iter) CustomerBalanceTransactionList() *stripe.CustomerBalanceTransactionList { 142 return i.List().(*stripe.CustomerBalanceTransactionList) 143 } 144 145 func getC() Client { 146 return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key} 147 }