@@ 40,12 40,15 @@ import (
"netlandish.com/x/gobwebs/validate"
)
-// ErrorExtension ...
-type ErrorExtension struct {
+type errorExtension struct {
Code int
Field string
}
+type queryErrorExtension struct {
+ Code string `json:"code"`
+}
+
var orgSlugKey = "organization.Slug"
var tzKey = "user.tz"
@@ 56,20 59,26 @@ func ParseInputErrors(c echo.Context, graphError *gqlclient.Error, fMap gobwebs.
if len(graphError.Extensions) == 0 {
return graphError
}
- var ext ErrorExtension
+
+ inputErrs := validate.NewInputErrors()
+ var ext errorExtension
err := json.Unmarshal(graphError.Extensions, &ext)
if err != nil {
- // Need to address invalid query errors here as they show as
- // json parsing errors when it's valid json. Ie,
+ // Try for query error
// {"code":"GRAPHQL_VALIDATION_FAILED"}
- return err
+ var qext queryErrorExtension
+ err = json.Unmarshal(graphError.Extensions, &qext)
+ if err != nil {
+ return err
+ }
+ inputErrs["_global_"] = []string{fmt.Sprintf("Query error: %s", qext.Code)}
+ return inputErrs
}
if ext.Code == valid.ErrNotFoundCode {
return echo.NotFoundHandler(c)
}
- inputErrs := validate.NewInputErrors()
if ext.Code == valid.ErrValidationGlobalCode {
inputErrs["_global_"] = []string{graphError.Message}
return inputErrs