diff options
Diffstat (limited to 'packages/sdk/go/client.go')
| -rw-r--r-- | packages/sdk/go/client.go | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/packages/sdk/go/client.go b/packages/sdk/go/client.go deleted file mode 100644 index a7b86428e..000000000 --- a/packages/sdk/go/client.go +++ /dev/null @@ -1,134 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package opencode - -import ( - "context" - "net/http" - "os" - "slices" - - "github.com/sst/opencode-sdk-go/internal/requestconfig" - "github.com/sst/opencode-sdk-go/option" -) - -// Client creates a struct with services and top level methods that help with -// interacting with the opencode API. You should not instantiate this client -// directly, and instead use the [NewClient] method instead. -type Client struct { - Options []option.RequestOption - Event *EventService - Path *PathService - App *AppService - Agent *AgentService - Find *FindService - File *FileService - Config *ConfigService - Command *CommandService - Project *ProjectService - Session *SessionService - Tui *TuiService -} - -// DefaultClientOptions read from the environment (OPENCODE_BASE_URL). This should -// be used to initialize new clients. -func DefaultClientOptions() []option.RequestOption { - defaults := []option.RequestOption{option.WithEnvironmentProduction()} - if o, ok := os.LookupEnv("OPENCODE_BASE_URL"); ok { - defaults = append(defaults, option.WithBaseURL(o)) - } - return defaults -} - -// NewClient generates a new client with the default option read from the -// environment (OPENCODE_BASE_URL). The option passed in as arguments are applied -// after these default arguments, and all option will be passed down to the -// services and requests that this client makes. -func NewClient(opts ...option.RequestOption) (r *Client) { - opts = append(DefaultClientOptions(), opts...) - - r = &Client{Options: opts} - - r.Event = NewEventService(opts...) - r.Path = NewPathService(opts...) - r.App = NewAppService(opts...) - r.Agent = NewAgentService(opts...) - r.Find = NewFindService(opts...) - r.File = NewFileService(opts...) - r.Config = NewConfigService(opts...) - r.Command = NewCommandService(opts...) - r.Project = NewProjectService(opts...) - r.Session = NewSessionService(opts...) - r.Tui = NewTuiService(opts...) - - return -} - -// Execute makes a request with the given context, method, URL, request params, -// response, and request options. This is useful for hitting undocumented endpoints -// while retaining the base URL, auth, retries, and other options from the client. -// -// If a byte slice or an [io.Reader] is supplied to params, it will be used as-is -// for the request body. -// -// The params is by default serialized into the body using [encoding/json]. If your -// type implements a MarshalJSON function, it will be used instead to serialize the -// request. If a URLQuery method is implemented, the returned [url.Values] will be -// used as query strings to the url. -// -// If your params struct uses [param.Field], you must provide either [MarshalJSON], -// [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a -// struct uses [param.Field] without specifying how it is serialized. -// -// Any "…Params" object defined in this library can be used as the request -// argument. Note that 'path' arguments will not be forwarded into the url. -// -// The response body will be deserialized into the res variable, depending on its -// type: -// -// - A pointer to a [*http.Response] is populated by the raw response. -// - A pointer to a byte array will be populated with the contents of the request -// body. -// - A pointer to any other type uses this library's default JSON decoding, which -// respects UnmarshalJSON if it is defined on the type. -// - A nil value will not read the response body. -// -// For even greater flexibility, see [option.WithResponseInto] and -// [option.WithResponseBodyInto]. -func (r *Client) Execute(ctx context.Context, method string, path string, params interface{}, res interface{}, opts ...option.RequestOption) error { - opts = slices.Concat(r.Options, opts) - return requestconfig.ExecuteNewRequest(ctx, method, path, params, res, opts...) -} - -// Get makes a GET request with the given URL, params, and optionally deserializes -// to a response. See [Execute] documentation on the params and response. -func (r *Client) Get(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error { - return r.Execute(ctx, http.MethodGet, path, params, res, opts...) -} - -// Post makes a POST request with the given URL, params, and optionally -// deserializes to a response. See [Execute] documentation on the params and -// response. -func (r *Client) Post(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error { - return r.Execute(ctx, http.MethodPost, path, params, res, opts...) -} - -// Put makes a PUT request with the given URL, params, and optionally deserializes -// to a response. See [Execute] documentation on the params and response. -func (r *Client) Put(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error { - return r.Execute(ctx, http.MethodPut, path, params, res, opts...) -} - -// Patch makes a PATCH request with the given URL, params, and optionally -// deserializes to a response. See [Execute] documentation on the params and -// response. -func (r *Client) Patch(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error { - return r.Execute(ctx, http.MethodPatch, path, params, res, opts...) -} - -// Delete makes a DELETE request with the given URL, params, and optionally -// deserializes to a response. See [Execute] documentation on the params and -// response. -func (r *Client) Delete(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error { - return r.Execute(ctx, http.MethodDelete, path, params, res, opts...) -} |
