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 }