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

     1  //
     2  //
     3  // File generated from our OpenAPI spec
     4  //
     5  //
     6  
     7  // Package financialaccount provides the /treasury/financial_accounts APIs
     8  package financialaccount
     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 /treasury/financial_accounts APIs.
    18  type Client struct {
    19  	B   stripe.Backend
    20  	Key string
    21  }
    22  
    23  // New creates a new treasury financial account.
    24  func New(params *stripe.TreasuryFinancialAccountParams) (*stripe.TreasuryFinancialAccount, error) {
    25  	return getC().New(params)
    26  }
    27  
    28  // New creates a new treasury financial account.
    29  func (c Client) New(params *stripe.TreasuryFinancialAccountParams) (*stripe.TreasuryFinancialAccount, error) {
    30  	financialaccount := &stripe.TreasuryFinancialAccount{}
    31  	err := c.B.Call(
    32  		http.MethodPost,
    33  		"/v1/treasury/financial_accounts",
    34  		c.Key,
    35  		params,
    36  		financialaccount,
    37  	)
    38  	return financialaccount, err
    39  }
    40  
    41  // Get returns the details of a treasury financial account.
    42  func Get(id string, params *stripe.TreasuryFinancialAccountParams) (*stripe.TreasuryFinancialAccount, error) {
    43  	return getC().Get(id, params)
    44  }
    45  
    46  // Get returns the details of a treasury financial account.
    47  func (c Client) Get(id string, params *stripe.TreasuryFinancialAccountParams) (*stripe.TreasuryFinancialAccount, error) {
    48  	path := stripe.FormatURLPath("/v1/treasury/financial_accounts/%s", id)
    49  	financialaccount := &stripe.TreasuryFinancialAccount{}
    50  	err := c.B.Call(http.MethodGet, path, c.Key, params, financialaccount)
    51  	return financialaccount, err
    52  }
    53  
    54  // Update updates a treasury financial account's properties.
    55  func Update(id string, params *stripe.TreasuryFinancialAccountParams) (*stripe.TreasuryFinancialAccount, error) {
    56  	return getC().Update(id, params)
    57  }
    58  
    59  // Update updates a treasury financial account's properties.
    60  func (c Client) Update(id string, params *stripe.TreasuryFinancialAccountParams) (*stripe.TreasuryFinancialAccount, error) {
    61  	path := stripe.FormatURLPath("/v1/treasury/financial_accounts/%s", id)
    62  	financialaccount := &stripe.TreasuryFinancialAccount{}
    63  	err := c.B.Call(http.MethodPost, path, c.Key, params, financialaccount)
    64  	return financialaccount, err
    65  }
    66  
    67  // RetrieveFeatures is the method for the `GET /v1/treasury/financial_accounts/{financial_account}/features` API.
    68  func RetrieveFeatures(id string, params *stripe.TreasuryFinancialAccountRetrieveFeaturesParams) (*stripe.TreasuryFinancialAccountFeatures, error) {
    69  	return getC().RetrieveFeatures(id, params)
    70  }
    71  
    72  // RetrieveFeatures is the method for the `GET /v1/treasury/financial_accounts/{financial_account}/features` API.
    73  func (c Client) RetrieveFeatures(id string, params *stripe.TreasuryFinancialAccountRetrieveFeaturesParams) (*stripe.TreasuryFinancialAccountFeatures, error) {
    74  	path := stripe.FormatURLPath(
    75  		"/v1/treasury/financial_accounts/%s/features",
    76  		id,
    77  	)
    78  	financialaccountfeatures := &stripe.TreasuryFinancialAccountFeatures{}
    79  	err := c.B.Call(http.MethodGet, path, c.Key, params, financialaccountfeatures)
    80  	return financialaccountfeatures, err
    81  }
    82  
    83  // UpdateFeatures is the method for the `POST /v1/treasury/financial_accounts/{financial_account}/features` API.
    84  func UpdateFeatures(id string, params *stripe.TreasuryFinancialAccountUpdateFeaturesParams) (*stripe.TreasuryFinancialAccountFeatures, error) {
    85  	return getC().UpdateFeatures(id, params)
    86  }
    87  
    88  // UpdateFeatures is the method for the `POST /v1/treasury/financial_accounts/{financial_account}/features` API.
    89  func (c Client) UpdateFeatures(id string, params *stripe.TreasuryFinancialAccountUpdateFeaturesParams) (*stripe.TreasuryFinancialAccountFeatures, error) {
    90  	path := stripe.FormatURLPath(
    91  		"/v1/treasury/financial_accounts/%s/features",
    92  		id,
    93  	)
    94  	financialaccountfeatures := &stripe.TreasuryFinancialAccountFeatures{}
    95  	err := c.B.Call(
    96  		http.MethodPost,
    97  		path,
    98  		c.Key,
    99  		params,
   100  		financialaccountfeatures,
   101  	)
   102  	return financialaccountfeatures, err
   103  }
   104  
   105  // List returns a list of treasury financial accounts.
   106  func List(params *stripe.TreasuryFinancialAccountListParams) *Iter {
   107  	return getC().List(params)
   108  }
   109  
   110  // List returns a list of treasury financial accounts.
   111  func (c Client) List(listParams *stripe.TreasuryFinancialAccountListParams) *Iter {
   112  	return &Iter{
   113  		Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
   114  			list := &stripe.TreasuryFinancialAccountList{}
   115  			err := c.B.CallRaw(http.MethodGet, "/v1/treasury/financial_accounts", c.Key, b, p, list)
   116  
   117  			ret := make([]interface{}, len(list.Data))
   118  			for i, v := range list.Data {
   119  				ret[i] = v
   120  			}
   121  
   122  			return ret, list, err
   123  		}),
   124  	}
   125  }
   126  
   127  // Iter is an iterator for treasury financial accounts.
   128  type Iter struct {
   129  	*stripe.Iter
   130  }
   131  
   132  // TreasuryFinancialAccount returns the treasury financial account which the iterator is currently pointing to.
   133  func (i *Iter) TreasuryFinancialAccount() *stripe.TreasuryFinancialAccount {
   134  	return i.Current().(*stripe.TreasuryFinancialAccount)
   135  }
   136  
   137  // TreasuryFinancialAccountList returns the current list object which the iterator is
   138  // currently using. List objects will change as new API calls are made to
   139  // continue pagination.
   140  func (i *Iter) TreasuryFinancialAccountList() *stripe.TreasuryFinancialAccountList {
   141  	return i.List().(*stripe.TreasuryFinancialAccountList)
   142  }
   143  
   144  func getC() Client {
   145  	return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key}
   146  }