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

     1  //
     2  //
     3  // File generated from our OpenAPI spec
     4  //
     5  //
     6  
     7  // Package account provides the /financial_connections/accounts APIs
     8  package account
     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 /financial_connections/accounts APIs.
    18  type Client struct {
    19  	B   stripe.Backend
    20  	Key string
    21  }
    22  
    23  // GetByID returns the details of a financial connections account.
    24  func GetByID(id string, params *stripe.FinancialConnectionsAccountParams) (*stripe.FinancialConnectionsAccount, error) {
    25  	return getC().GetByID(id, params)
    26  }
    27  
    28  // GetByID returns the details of a financial connections account.
    29  func (c Client) GetByID(id string, params *stripe.FinancialConnectionsAccountParams) (*stripe.FinancialConnectionsAccount, error) {
    30  	path := stripe.FormatURLPath("/v1/financial_connections/accounts/%s", id)
    31  	account := &stripe.FinancialConnectionsAccount{}
    32  	err := c.B.Call(http.MethodGet, path, c.Key, params, account)
    33  	return account, err
    34  }
    35  
    36  // Disconnect is the method for the `POST /v1/financial_connections/accounts/{account}/disconnect` API.
    37  func Disconnect(id string, params *stripe.FinancialConnectionsAccountDisconnectParams) (*stripe.FinancialConnectionsAccount, error) {
    38  	return getC().Disconnect(id, params)
    39  }
    40  
    41  // Disconnect is the method for the `POST /v1/financial_connections/accounts/{account}/disconnect` API.
    42  func (c Client) Disconnect(id string, params *stripe.FinancialConnectionsAccountDisconnectParams) (*stripe.FinancialConnectionsAccount, error) {
    43  	path := stripe.FormatURLPath(
    44  		"/v1/financial_connections/accounts/%s/disconnect",
    45  		id,
    46  	)
    47  	account := &stripe.FinancialConnectionsAccount{}
    48  	err := c.B.Call(http.MethodPost, path, c.Key, params, account)
    49  	return account, err
    50  }
    51  
    52  // Refresh is the method for the `POST /v1/financial_connections/accounts/{account}/refresh` API.
    53  func Refresh(id string, params *stripe.FinancialConnectionsAccountRefreshParams) (*stripe.FinancialConnectionsAccount, error) {
    54  	return getC().Refresh(id, params)
    55  }
    56  
    57  // Refresh is the method for the `POST /v1/financial_connections/accounts/{account}/refresh` API.
    58  func (c Client) Refresh(id string, params *stripe.FinancialConnectionsAccountRefreshParams) (*stripe.FinancialConnectionsAccount, error) {
    59  	path := stripe.FormatURLPath(
    60  		"/v1/financial_connections/accounts/%s/refresh",
    61  		id,
    62  	)
    63  	account := &stripe.FinancialConnectionsAccount{}
    64  	err := c.B.Call(http.MethodPost, path, c.Key, params, account)
    65  	return account, err
    66  }
    67  
    68  // Subscribe is the method for the `POST /v1/financial_connections/accounts/{account}/subscribe` API.
    69  func Subscribe(id string, params *stripe.FinancialConnectionsAccountSubscribeParams) (*stripe.FinancialConnectionsAccount, error) {
    70  	return getC().Subscribe(id, params)
    71  }
    72  
    73  // Subscribe is the method for the `POST /v1/financial_connections/accounts/{account}/subscribe` API.
    74  func (c Client) Subscribe(id string, params *stripe.FinancialConnectionsAccountSubscribeParams) (*stripe.FinancialConnectionsAccount, error) {
    75  	path := stripe.FormatURLPath(
    76  		"/v1/financial_connections/accounts/%s/subscribe",
    77  		id,
    78  	)
    79  	account := &stripe.FinancialConnectionsAccount{}
    80  	err := c.B.Call(http.MethodPost, path, c.Key, params, account)
    81  	return account, err
    82  }
    83  
    84  // Unsubscribe is the method for the `POST /v1/financial_connections/accounts/{account}/unsubscribe` API.
    85  func Unsubscribe(id string, params *stripe.FinancialConnectionsAccountUnsubscribeParams) (*stripe.FinancialConnectionsAccount, error) {
    86  	return getC().Unsubscribe(id, params)
    87  }
    88  
    89  // Unsubscribe is the method for the `POST /v1/financial_connections/accounts/{account}/unsubscribe` API.
    90  func (c Client) Unsubscribe(id string, params *stripe.FinancialConnectionsAccountUnsubscribeParams) (*stripe.FinancialConnectionsAccount, error) {
    91  	path := stripe.FormatURLPath(
    92  		"/v1/financial_connections/accounts/%s/unsubscribe",
    93  		id,
    94  	)
    95  	account := &stripe.FinancialConnectionsAccount{}
    96  	err := c.B.Call(http.MethodPost, path, c.Key, params, account)
    97  	return account, err
    98  }
    99  
   100  // List returns a list of financial connections accounts.
   101  func List(params *stripe.FinancialConnectionsAccountListParams) *Iter {
   102  	return getC().List(params)
   103  }
   104  
   105  // List returns a list of financial connections accounts.
   106  func (c Client) List(listParams *stripe.FinancialConnectionsAccountListParams) *Iter {
   107  	return &Iter{
   108  		Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
   109  			list := &stripe.FinancialConnectionsAccountList{}
   110  			err := c.B.CallRaw(http.MethodGet, "/v1/financial_connections/accounts", c.Key, b, p, list)
   111  
   112  			ret := make([]interface{}, len(list.Data))
   113  			for i, v := range list.Data {
   114  				ret[i] = v
   115  			}
   116  
   117  			return ret, list, err
   118  		}),
   119  	}
   120  }
   121  
   122  // Iter is an iterator for financial connections accounts.
   123  type Iter struct {
   124  	*stripe.Iter
   125  }
   126  
   127  // FinancialConnectionsAccount returns the financial connections account which the iterator is currently pointing to.
   128  func (i *Iter) FinancialConnectionsAccount() *stripe.FinancialConnectionsAccount {
   129  	return i.Current().(*stripe.FinancialConnectionsAccount)
   130  }
   131  
   132  // FinancialConnectionsAccountList returns the current list object which the iterator is
   133  // currently using. List objects will change as new API calls are made to
   134  // continue pagination.
   135  func (i *Iter) FinancialConnectionsAccountList() *stripe.FinancialConnectionsAccountList {
   136  	return i.List().(*stripe.FinancialConnectionsAccountList)
   137  }
   138  
   139  // ListOwners is the method for the `GET /v1/financial_connections/accounts/{account}/owners` API.
   140  func ListOwners(params *stripe.FinancialConnectionsAccountListOwnersParams) *OwnerIter {
   141  	return getC().ListOwners(params)
   142  }
   143  
   144  // ListOwners is the method for the `GET /v1/financial_connections/accounts/{account}/owners` API.
   145  func (c Client) ListOwners(listParams *stripe.FinancialConnectionsAccountListOwnersParams) *OwnerIter {
   146  	path := stripe.FormatURLPath(
   147  		"/v1/financial_connections/accounts/%s/owners",
   148  		stripe.StringValue(listParams.Account),
   149  	)
   150  	return &OwnerIter{
   151  		Iter: stripe.GetIter(listParams, func(p *stripe.Params, b *form.Values) ([]interface{}, stripe.ListContainer, error) {
   152  			list := &stripe.FinancialConnectionsAccountOwnerList{}
   153  			err := c.B.CallRaw(http.MethodGet, path, c.Key, b, p, list)
   154  
   155  			ret := make([]interface{}, len(list.Data))
   156  			for i, v := range list.Data {
   157  				ret[i] = v
   158  			}
   159  
   160  			return ret, list, err
   161  		}),
   162  	}
   163  }
   164  
   165  // OwnerIter is an iterator for financial connections account owners.
   166  type OwnerIter struct {
   167  	*stripe.Iter
   168  }
   169  
   170  // FinancialConnectionsAccountOwner returns the financial connections account owner which the iterator is currently pointing to.
   171  func (i *OwnerIter) FinancialConnectionsAccountOwner() *stripe.FinancialConnectionsAccountOwner {
   172  	return i.Current().(*stripe.FinancialConnectionsAccountOwner)
   173  }
   174  
   175  // FinancialConnectionsAccountOwnerList returns the current list object which the iterator is
   176  // currently using. List objects will change as new API calls are made to
   177  // continue pagination.
   178  func (i *OwnerIter) FinancialConnectionsAccountOwnerList() *stripe.FinancialConnectionsAccountOwnerList {
   179  	return i.List().(*stripe.FinancialConnectionsAccountOwnerList)
   180  }
   181  
   182  func getC() Client {
   183  	return Client{stripe.GetBackend(stripe.APIBackend), stripe.Key}
   184  }