From ecceddec6e3bbc4df96536a211a9a71f0919e47d Mon Sep 17 00:00:00 2001 From: Nick Randall Date: Wed, 11 Jan 2017 10:10:06 -0700 Subject: [PATCH] Add ResolverError field to QueryError for post processing --- errors/errors.go | 5 +++-- internal/exec/exec.go | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/errors/errors.go b/errors/errors.go index ea71bbb160..80476994b5 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -3,8 +3,9 @@ package errors import "fmt" type QueryError struct { - Message string `json:"message"` - Locations []*Location `json:"locations,omitempty"` + Message string `json:"message"` + Locations []*Location `json:"locations,omitempty"` + ResolverError error `json:"-"` } type Location struct { diff --git a/internal/exec/exec.go b/internal/exec/exec.go index 3100532765..44bacf1498 100644 --- a/internal/exec/exec.go +++ b/internal/exec/exec.go @@ -554,7 +554,9 @@ func (e *fieldExec) execField(ctx context.Context, r *request, f *query.Field, r result, err := e.execField2(spanCtx, r, f, resolver, span) if err != nil { - r.addError(errors.Errorf("%s", err)) + queryError := errors.Errorf("%s", err) + queryError.ResolverError = err + r.addError(queryError) addResult(f.Alias, nil) // TODO handle non-nil ext.Error.Set(span, true)