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

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