| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // 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
- }
|