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

     1  //
     2  //
     3  // File generated from our OpenAPI spec
     4  //
     5  //
     6  
     7  // Package cardholder provides the /issuing/cardholders APIs
     8  // For more details, see: https://stripe.com/docs/api/?lang=go#issuing_cardholders
     9  package cardholder
    10  
    11  import (
    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 /issuing/cardholders APIs.
    19  type Client struct {
    20  	B   stripe.Backend
    21  	Key string
    22  }
    23  
    24  // New creates a new issuing cardholder.
    25  func New(params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) {
    26  	return getC().New(params)
    27  }
    28  
    29  // New creates a new issuing cardholder.
    30  func (c Client) New(params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) {
    31  	cardholder := &stripe.IssuingCardholder{}
    32  	err := c.B.Call(
    33  		http.MethodPost,
    34  		"/v1/issuing/cardholders",
    35  		c.Key,
    36  		params,
    37  		cardholder,
    38  	)
    39  	return cardholder, err
    40  }
    41  
    42  // Get returns the details of an issuing cardholder.
    43  func Get(id string, params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) {
    44  	return getC().Get(id, params)
    45  }
    46  
    47  // Get returns the details of an issuing cardholder.
    48  func (c Client) Get(id string, params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) {
    49  	path := stripe.FormatURLPath("/v1/issuing/cardholders/%s", id)
    50  	cardholder := &stripe.IssuingCardholder{}
    51  	err := c.B.Call(http.MethodGet, path, c.Key, params, cardholder)
    52  	return cardholder, err
    53  }
    54  
    55  // Update updates an issuing cardholder's properties.
    56  func Update(id string, params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) {
    57  	return getC().Update(id, params)
    58  }
    59  
    60  // Update updates an issuing cardholder's properties.
    61  func (c Client) Update(id string, params *stripe.IssuingCardholderParams) (*stripe.IssuingCardholder, error) {
    62  	path := stripe.FormatURLPath("/v1/issuing/cardholders/%s", id)
    63  	cardholder := &stripe.IssuingCardholder{}
    64  	err := c.B.Call(http.MethodPost, path, c.Key, params, cardholder)
    65  	return cardholder, err
    66  }
    67  
    68  // List returns a list of issuing cardholders.
    69  func List(params *stripe.IssuingCardholderListParams) *Iter {
    70  	return getC().List(params)
    71  }
    72  
    73  // List returns a list of issuing cardholders.
    74  func (c Client) List(listParams *stripe.IssuingCardholderListParams) *Iter {
    75  	return &Iter{
    76  		Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
    77  			list := &stripe.IssuingCardholderList{}
    78  			err := c.B.CallRaw(http.MethodGet, "/v1/issuing/cardholders", c.Key, b, p, list)
    79  
    80  			ret := make([]interface{}, len(list.Data))
    81  			for i, v := range list.Data {
    82  				ret[i] = v
    83  			}
    84  
    85  			return ret, list, err
    86  		}),
    87  	}
    88  }
    89  
    90  // Iter is an iterator for issuing cardholders.
    91  type Iter struct {
    92  	*stripe.Iter
    93  }
    94  
    95  // IssuingCardholder returns the issuing cardholder which the iterator is currently pointing to.
    96  func (i *Iter) IssuingCardholder() *stripe.IssuingCardholder {
    97  	return i.Current().(*stripe.IssuingCardholder)
    98  }
    99  
   100  // IssuingCardholderList returns the current list object which the iterator is
   101  // currently using. List objects will change as new API calls are made to
   102  // continue pagination.
   103  func (i *Iter) IssuingCardholderList() *stripe.IssuingCardholderList {
   104  	return i.List().(*stripe.IssuingCardholderList)
   105  }
   106  
   107  func getC() Client {
   108  	return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key}
   109  }