summaryrefslogtreecommitdiffhomepage
path: root/packages/tui/sdk/internal/apierror
diff options
context:
space:
mode:
authoradamdottv <[email protected]>2025-07-03 11:49:15 -0500
committeradamdottv <[email protected]>2025-07-03 11:49:15 -0500
commit5a0910ea79b3f219c64f922fc775636b2bfdf07c (patch)
tree6f3288101eb3aa99fdc31cfaf5e07e4990cc8954 /packages/tui/sdk/internal/apierror
parent1dffabcfdaeefd3bc08a51b625047185bade3a4d (diff)
downloadopencode-5a0910ea79b3f219c64f922fc775636b2bfdf07c.tar.gz
opencode-5a0910ea79b3f219c64f922fc775636b2bfdf07c.zip
chore: better local dev with stainless script
Diffstat (limited to 'packages/tui/sdk/internal/apierror')
-rw-r--r--packages/tui/sdk/internal/apierror/apierror.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/packages/tui/sdk/internal/apierror/apierror.go b/packages/tui/sdk/internal/apierror/apierror.go
new file mode 100644
index 000000000..24307fc36
--- /dev/null
+++ b/packages/tui/sdk/internal/apierror/apierror.go
@@ -0,0 +1,53 @@
+// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+package apierror
+
+import (
+ "fmt"
+ "net/http"
+ "net/http/httputil"
+
+ "github.com/sst/opencode-sdk-go/internal/apijson"
+)
+
+// Error represents an error that originates from the API, i.e. when a request is
+// made and the API returns a response with a HTTP status code. Other errors are
+// not wrapped by this SDK.
+type Error struct {
+ JSON errorJSON `json:"-"`
+ StatusCode int
+ Request *http.Request
+ Response *http.Response
+}
+
+// errorJSON contains the JSON metadata for the struct [Error]
+type errorJSON struct {
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *Error) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+func (r errorJSON) RawJSON() string {
+ return r.raw
+}
+
+func (r *Error) Error() string {
+ // Attempt to re-populate the response body
+ return fmt.Sprintf("%s \"%s\": %d %s %s", r.Request.Method, r.Request.URL, r.Response.StatusCode, http.StatusText(r.Response.StatusCode), r.JSON.RawJSON())
+}
+
+func (r *Error) DumpRequest(body bool) []byte {
+ if r.Request.GetBody != nil {
+ r.Request.Body, _ = r.Request.GetBody()
+ }
+ out, _ := httputil.DumpRequestOut(r.Request, body)
+ return out
+}
+
+func (r *Error) DumpResponse(body bool) []byte {
+ out, _ := httputil.DumpResponse(r.Response, body)
+ return out
+}