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  }