Files
signoz/pkg/errors/http.go
Vikrant Gupta 465e07de83 fix(openapi): make the error and status as mandatory (#10391)
* fix(openapi): make the error and status as mandatory

* fix(openapi): fix the frontend types
2026-02-23 16:47:24 +05:30

61 lines
1.2 KiB
Go

package errors
import (
"encoding/json"
"net/url"
)
type JSON struct {
Code string `json:"code" required:"true"`
Message string `json:"message" required:"true"`
Url string `json:"url,omitempty"`
Errors []responseerroradditional `json:"errors,omitempty"`
}
type responseerroradditional struct {
Message string `json:"message"`
}
func AsJSON(cause error) *JSON {
// See if this is an instance of the base error or not
_, c, m, _, u, a := Unwrapb(cause)
rea := make([]responseerroradditional, len(a))
for k, v := range a {
rea[k] = responseerroradditional{v}
}
return &JSON{
Code: c.String(),
Message: m,
Url: u,
Errors: rea,
}
}
func AsURLValues(cause error) url.Values {
// See if this is an instance of the base error or not
_, c, m, _, u, a := Unwrapb(cause)
rea := make([]responseerroradditional, len(a))
for k, v := range a {
rea[k] = responseerroradditional{v}
}
errors, err := json.Marshal(rea)
if err != nil {
return url.Values{
"code": {c.String()},
"message": {m},
"url": {u},
}
}
return url.Values{
"code": {c.String()},
"message": {m},
"url": {u},
"errors": {string(errors)},
}
}