github.com/stripe/stripe-go/v76@v76.25.0/customercashbalancetransaction/client.go (about)

     1  //
     2  //
     3  // File generated from our OpenAPI spec
     4  //
     5  //
     6  
     7  // Package customercashbalancetransaction provides the /customers/{customer}/cash_balance_transactions APIs
     8  package customercashbalancetransaction
     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 /customers/{customer}/cash_balance_transactions APIs.
    18  type Client struct {
    19  	B   stripe.Backend
    20  	Key string
    21  }
    22  
    23  // Get returns the details of a customer cash balance transaction.
    24  func Get(id string, params *stripe.CustomerCashBalanceTransactionParams) (*stripe.CustomerCashBalanceTransaction, error) {
    25  	return getC().Get(id, params)
    26  }
    27  
    28  // Get returns the details of a customer cash balance transaction.
    29  func (c Client) Get(id string, params *stripe.CustomerCashBalanceTransactionParams) (*stripe.CustomerCashBalanceTransaction, error) {
    30  	path := stripe.FormatURLPath(
    31  		"/v1/customers/%s/cash_balance_transactions/%s",
    32  		stripe.StringValue(params.Customer),
    33  		id,
    34  	)
    35  	customercashbalancetransaction := &stripe.CustomerCashBalanceTransaction{}
    36  	err := c.B.Call(
    37  		http.MethodGet,
    38  		path,
    39  		c.Key,
    40  		params,
    41  		customercashbalancetransaction,
    42  	)
    43  	return customercashbalancetransaction, err
    44  }
    45  
    46  // List returns a list of customer cash balance transactions.
    47  func List(params *stripe.CustomerCashBalanceTransactionListParams) *Iter {
    48  	return getC().List(params)
    49  }
    50  
    51  // List returns a list of customer cash balance transactions.
    52  func (c Client) List(listParams *stripe.CustomerCashBalanceTransactionListParams) *Iter {
    53  	path := stripe.FormatURLPath(
    54  		"/v1/customers/%s/cash_balance_transactions",
    55  		stripe.StringValue(listParams.Customer),
    56  	)
    57  	return &Iter{
    58  		Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
    59  			list := &stripe.CustomerCashBalanceTransactionList{}
    60  			err := c.B.CallRaw(http.MethodGet, path, c.Key, b, p, list)
    61  
    62  			ret := make([]interface{}, len(list.Data))
    63  			for i, v := range list.Data {
    64  				ret[i] = v
    65  			}
    66  
    67  			return ret, list, err
    68  		}),
    69  	}
    70  }
    71  
    72  // Iter is an iterator for customer cash balance transactions.
    73  type Iter struct {
    74  	*stripe.Iter
    75  }
    76  
    77  // CustomerCashBalanceTransaction returns the customer cash balance transaction which the iterator is currently pointing to.
    78  func (i *Iter) CustomerCashBalanceTransaction() *stripe.CustomerCashBalanceTransaction {
    79  	return i.Current().(*stripe.CustomerCashBalanceTransaction)
    80  }
    81  
    82  // CustomerCashBalanceTransactionList returns the current list object which the iterator is
    83  // currently using. List objects will change as new API calls are made to
    84  // continue pagination.
    85  func (i *Iter) CustomerCashBalanceTransactionList() *stripe.CustomerCashBalanceTransactionList {
    86  	return i.List().(*stripe.CustomerCashBalanceTransactionList)
    87  }
    88  
    89  func getC() Client {
    90  	return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key}
    91  }