Skip to content

Commit

Permalink
feat(api): update via SDK Studio (#125)
Browse files Browse the repository at this point in the history
  • Loading branch information
stainless-app[bot] authored and stainless-bot committed Nov 17, 2024
1 parent 8b04caf commit 9a5c3b8
Show file tree
Hide file tree
Showing 7 changed files with 133 additions and 5 deletions.
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 16
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/terminal%2Fterminal-ffa5e7ef7ee2a6f2e9d651bee20492252b713b67142e1d11e06d829b9ad1d56f.yml
configured_endpoints: 18
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/terminal%2Fterminal-5ad903d45b4e1f1a757c1a29c86ada666bc2e4aa4a1e1c0a91ece85f58256533.yml
4 changes: 4 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,13 @@ Methods:
Response Types:

- <a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderNewResponse">OrderNewResponse</a>
- <a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderListResponse">OrderListResponse</a>
- <a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderGetResponse">OrderGetResponse</a>

Methods:

- <code title="post /order">client.Order.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>) (<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderNewResponse">OrderNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="get /order">client.Order.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderService.List">List</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>) (<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderListResponse">OrderListResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="get /order/{id}">client.Order.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderService.Get">Get</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#OrderGetResponse">OrderGetResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

# Subscription
Expand All @@ -92,8 +94,10 @@ Response Types:

- <a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionNewResponse">SubscriptionNewResponse</a>
- <a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionListResponse">SubscriptionListResponse</a>
- <a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionDeleteResponse">SubscriptionDeleteResponse</a>

Methods:

- <code title="put /subscription">client.Subscription.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionService.New">New</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionNewParams">SubscriptionNewParams</a>) (<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionNewResponse">SubscriptionNewResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="get /subscription">client.Subscription.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionService.List">List</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>) (<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionListResponse">SubscriptionListResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
- <code title="delete /subscription/{id}">client.Subscription.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionService.Delete">Delete</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, id <a href="https://pkg.go.dev/builtin#string">string</a>) (<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go">terminal</a>.<a href="https://pkg.go.dev/github.com/terminaldotshop/terminal-sdk-go#SubscriptionDeleteResponse">SubscriptionDeleteResponse</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
28 changes: 28 additions & 0 deletions order.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@ func (r *OrderService) New(ctx context.Context, opts ...option.RequestOption) (r
return
}

func (r *OrderService) List(ctx context.Context, opts ...option.RequestOption) (res *OrderListResponse, err error) {
opts = append(r.Options[:], opts...)
path := "order"
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
return
}

func (r *OrderService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *OrderGetResponse, err error) {
opts = append(r.Options[:], opts...)
if id == "" {
Expand Down Expand Up @@ -72,6 +79,27 @@ func (r orderNewResponseJSON) RawJSON() string {
return r.raw
}

type OrderListResponse struct {
Result []shared.Order `json:"result,required"`
JSON orderListResponseJSON `json:"-"`
}

// orderListResponseJSON contains the JSON metadata for the struct
// [OrderListResponse]
type orderListResponseJSON struct {
Result apijson.Field
raw string
ExtraFields map[string]apijson.Field
}

func (r *OrderListResponse) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}

func (r orderListResponseJSON) RawJSON() string {
return r.raw
}

type OrderGetResponse struct {
Result shared.Order `json:"result,required"`
JSON orderGetResponseJSON `json:"-"`
Expand Down
22 changes: 22 additions & 0 deletions order_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,28 @@ func TestOrderNew(t *testing.T) {
}
}

func TestOrderList(t *testing.T) {
baseURL := "http://localhost:4010"
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
baseURL = envURL
}
if !testutil.CheckTestServer(t, baseURL) {
return
}
client := terminal.NewClient(
option.WithBaseURL(baseURL),
option.WithBearerToken("My Bearer Token"),
)
_, err := client.Order.List(context.TODO())
if err != nil {
var apierr *terminal.Error
if errors.As(err, &apierr) {
t.Log(string(apierr.DumpRequest(true)))
}
t.Fatalf("err should be nil: %s", err.Error())
}
}

func TestOrderGet(t *testing.T) {
baseURL := "http://localhost:4010"
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
Expand Down
10 changes: 7 additions & 3 deletions shared/shared.go
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ type Order struct {
Items []OrderItem `json:"items,required"`
Shipping OrderShipping `json:"shipping,required"`
Tracking OrderTracking `json:"tracking,required"`
Index float64 `json:"index"`
JSON orderJSON `json:"-"`
}

Expand All @@ -204,6 +205,7 @@ type orderJSON struct {
Items apijson.Field
Shipping apijson.Field
Tracking apijson.Field
Index apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
Expand Down Expand Up @@ -301,14 +303,16 @@ func (r orderShippingJSON) RawJSON() string {
}

type OrderTracking struct {
Number string `json:"number"`
URL string `json:"url"`
JSON orderTrackingJSON `json:"-"`
Number string `json:"number"`
Service string `json:"service"`
URL string `json:"url"`
JSON orderTrackingJSON `json:"-"`
}

// orderTrackingJSON contains the JSON metadata for the struct [OrderTracking]
type orderTrackingJSON struct {
Number apijson.Field
Service apijson.Field
URL apijson.Field
raw string
ExtraFields map[string]apijson.Field
Expand Down
48 changes: 48 additions & 0 deletions subscription.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ package terminal

import (
"context"
"errors"
"fmt"
"net/http"

"github.com/terminaldotshop/terminal-sdk-go/internal/apijson"
Expand Down Expand Up @@ -46,6 +48,17 @@ func (r *SubscriptionService) List(ctx context.Context, opts ...option.RequestOp
return
}

func (r *SubscriptionService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *SubscriptionDeleteResponse, err error) {
opts = append(r.Options[:], opts...)
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("subscription/%s", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...)
return
}

type SubscriptionNewResponse struct {
Result bool `json:"result,required"`
JSON subscriptionNewResponseJSON `json:"-"`
Expand Down Expand Up @@ -88,6 +101,41 @@ func (r subscriptionListResponseJSON) RawJSON() string {
return r.raw
}

type SubscriptionDeleteResponse struct {
Result SubscriptionDeleteResponseResult `json:"result,required"`
JSON subscriptionDeleteResponseJSON `json:"-"`
}

// subscriptionDeleteResponseJSON contains the JSON metadata for the struct
// [SubscriptionDeleteResponse]
type subscriptionDeleteResponseJSON struct {
Result apijson.Field
raw string
ExtraFields map[string]apijson.Field
}

func (r *SubscriptionDeleteResponse) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}

func (r subscriptionDeleteResponseJSON) RawJSON() string {
return r.raw
}

type SubscriptionDeleteResponseResult string

const (
SubscriptionDeleteResponseResultOk SubscriptionDeleteResponseResult = "ok"
)

func (r SubscriptionDeleteResponseResult) IsKnown() bool {
switch r {
case SubscriptionDeleteResponseResultOk:
return true
}
return false
}

type SubscriptionNewParams struct {
CardID param.Field[string] `json:"cardID,required"`
Frequency param.Field[SubscriptionNewParamsFrequency] `json:"frequency,required"`
Expand Down
22 changes: 22 additions & 0 deletions subscription_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,25 @@ func TestSubscriptionList(t *testing.T) {
t.Fatalf("err should be nil: %s", err.Error())
}
}

func TestSubscriptionDelete(t *testing.T) {
baseURL := "http://localhost:4010"
if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
baseURL = envURL
}
if !testutil.CheckTestServer(t, baseURL) {
return
}
client := terminal.NewClient(
option.WithBaseURL(baseURL),
option.WithBearerToken("My Bearer Token"),
)
_, err := client.Subscription.Delete(context.TODO(), "id")
if err != nil {
var apierr *terminal.Error
if errors.As(err, &apierr) {
t.Log(string(apierr.DumpRequest(true)))
}
t.Fatalf("err should be nil: %s", err.Error())
}
}

0 comments on commit 9a5c3b8

Please sign in to comment.