33 lines
561 B
Go
33 lines
561 B
Go
package types
|
|
|
|
import "encoding/json"
|
|
|
|
type Source struct {
|
|
Pointer string `json:"pointer"`
|
|
}
|
|
|
|
type ErrorDetail struct {
|
|
Source `json:"source"`
|
|
Detail string `json:"detail"`
|
|
}
|
|
|
|
func NewValidationError(attr, message string) ErrorDetail {
|
|
return ErrorDetail{
|
|
Source: Source{Pointer: "data/attributes/" + attr},
|
|
Detail: message,
|
|
}
|
|
}
|
|
|
|
type ValidationError []ErrorDetail
|
|
|
|
func (v ValidationError) Error() string {
|
|
errs, err := json.Marshal(struct {
|
|
ValidationError `json:"errors"`
|
|
}{v})
|
|
|
|
if err != nil {
|
|
return err.Error()
|
|
}
|
|
|
|
return string(errs)
|
|
}
|