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