blob: 3a1f8853cd925b047b2f323be8750634fb2e6901 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package gqlerrors
import (
"errors"
"github.com/graphql-go/graphql/language/location"
)
type FormattedError struct {
Message string `json:"message"`
Locations []location.SourceLocation `json:"locations"`
}
func (g FormattedError) Error() string {
return g.Message
}
func NewFormattedError(message string) FormattedError {
err := errors.New(message)
return FormatError(err)
}
func FormatError(err error) FormattedError {
switch err := err.(type) {
case FormattedError:
return err
case *Error:
return FormattedError{
Message: err.Error(),
Locations: err.Locations,
}
case Error:
return FormattedError{
Message: err.Error(),
Locations: err.Locations,
}
default:
return FormattedError{
Message: err.Error(),
Locations: []location.SourceLocation{},
}
}
}
func FormatErrors(errs ...error) []FormattedError {
formattedErrors := []FormattedError{}
for _, err := range errs {
formattedErrors = append(formattedErrors, FormatError(err))
}
return formattedErrors
}
|