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

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