From b512176ccd04fca974685829c93345357a0c9cf1 Mon Sep 17 00:00:00 2001 From: Mathew Byrne Date: Mon, 23 Jul 2018 15:31:41 +1000 Subject: [PATCH 1/4] Run resolver middleware for all fields --- codegen/templates/data.go | 2 +- codegen/templates/field.gotpl | 43 ++++++++++++++++------------------- 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/codegen/templates/data.go b/codegen/templates/data.go index c8acf5710a..6d137b3530 100644 --- a/codegen/templates/data.go +++ b/codegen/templates/data.go @@ -2,7 +2,7 @@ package templates var data = map[string]string{ "args.gotpl": "\t{{- if . }}args := map[string]interface{}{} {{end}}\n\t{{- range $i, $arg := . }}\n\t\tvar arg{{$i}} {{$arg.Signature }}\n\t\tif tmp, ok := field.Args[{{$arg.GQLName|quote}}]; ok {\n\t\t\tvar err error\n\t\t\t{{$arg.Unmarshal (print \"arg\" $i) \"tmp\" }}\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\t{{- if $arg.Object.Stream }}\n\t\t\t\t\treturn nil\n\t\t\t\t{{- else }}\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t{{- end }}\n\t\t\t}\n\t\t} {{ if $arg.Default }} else {\n\t\t\tvar tmp interface{} = {{ $arg.Default | dump }}\n\t\t\tvar err error\n\t\t\t{{$arg.Unmarshal (print \"arg\" $i) \"tmp\" }}\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\t{{- if $arg.Object.Stream }}\n\t\t\t\t\treturn nil\n\t\t\t\t{{- else }}\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t{{- end }}\n\t\t\t}\n\t\t}\n\t\t{{end }}\n\t\targs[{{$arg.GQLName|quote}}] = arg{{$i}}\n\t{{- end -}}\n", - "field.gotpl": "{{ $field := . }}\n{{ $object := $field.Object }}\n\n{{- if $object.Stream }}\n\tfunc (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler {\n\t\t{{- template \"args.gotpl\" $field.Args }}\n\t\tctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{Field: field})\n\t\tresults, err := ec.resolvers.{{ $field.ShortInvocation }}\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t\treturn nil\n\t\t}\n\t\treturn func() graphql.Marshaler {\n\t\t\tres, ok := <-results\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tvar out graphql.OrderedMap\n\t\t\tout.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }())\n\t\t\treturn &out\n\t\t}\n\t}\n{{ else }}\n\tfunc (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler {\n\t\t{{- template \"args.gotpl\" $field.Args }}\n\n\t\t{{- if $field.IsConcurrent }}\n\t\t\tctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{\n\t\t\t\tObject: {{$object.GQLType|quote}},\n\t\t\t\tArgs: {{if $field.Args }}args{{else}}nil{{end}},\n\t\t\t\tField: field,\n\t\t\t})\n\t\t\treturn graphql.Defer(func() (ret graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tuserErr := ec.Recover(ctx, r)\n\t\t\t\t\t\tec.Error(ctx, userErr)\n\t\t\t\t\t\tret = graphql.Null\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t{{ else }}\n\t\t\trctx := graphql.GetResolverContext(ctx)\n\t\t\trctx.Object = {{$object.GQLType|quote}}\n\t\t\trctx.Args = {{if $field.Args }}args{{else}}nil{{end}}\n\t\t\trctx.Field = field\n\t\t\trctx.PushField(field.Alias)\n\t\t\tdefer rctx.Pop()\n\t\t{{- end }}\n\n\t\t\t{{- if $field.IsResolver }}\n\t\t\t\tresTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) {\n\t\t\t\t\treturn ec.resolvers.{{ $field.ShortInvocation }}\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t}\n\t\t\t\tif resTmp == nil {\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t}\n\t\t\t\tres := resTmp.({{$field.Signature}})\n\t\t\t{{- else if $field.GoVarName }}\n\t\t\t\tres := obj.{{$field.GoVarName}}\n\t\t\t{{- else if $field.GoMethodName }}\n\t\t\t\t{{- if $field.NoErr }}\n\t\t\t\t\tres := {{$field.GoMethodName}}({{ $field.CallArgs }})\n\t\t\t\t{{- else }}\n\t\t\t\t\tres, err := {{$field.GoMethodName}}({{ $field.CallArgs }})\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tec.Error(ctx, err)\n\t\t\t\t\t\treturn graphql.Null\n\t\t\t\t\t}\n\t\t\t\t{{- end }}\n\t\t\t{{- end }}\n\t\t\t{{ $field.WriteJson }}\n\t\t{{- if $field.IsConcurrent }}\n\t\t\t})\n\t\t{{- end }}\n\t}\n{{ end }}\n", + "field.gotpl": "{{ $field := . }}\n{{ $object := $field.Object }}\n\n{{- if $object.Stream }}\n\tfunc (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler {\n\t\t{{- template \"args.gotpl\" $field.Args }}\n\t\tctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{Field: field})\n\t\tresults, err := ec.resolvers.{{ $field.ShortInvocation }}\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t\treturn nil\n\t\t}\n\t\treturn func() graphql.Marshaler {\n\t\t\tres, ok := <-results\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tvar out graphql.OrderedMap\n\t\t\tout.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }())\n\t\t\treturn &out\n\t\t}\n\t}\n{{ else }}\n\tfunc (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler {\n\t\t{{- template \"args.gotpl\" $field.Args }}\n\n\t\t{{- if $field.IsConcurrent }}\n\t\t\tctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{\n\t\t\t\tObject: {{$object.GQLType|quote}},\n\t\t\t\tArgs: {{if $field.Args }}args{{else}}nil{{end}},\n\t\t\t\tField: field,\n\t\t\t})\n\t\t\treturn graphql.Defer(func() (ret graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tuserErr := ec.Recover(ctx, r)\n\t\t\t\t\t\tec.Error(ctx, userErr)\n\t\t\t\t\t\tret = graphql.Null\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t{{ else }}\n\t\t\trctx := graphql.GetResolverContext(ctx)\n\t\t\trctx.Object = {{$object.GQLType|quote}}\n\t\t\trctx.Args = {{if $field.Args }}args{{else}}nil{{end}}\n\t\t\trctx.Field = field\n\t\t\trctx.PushField(field.Alias)\n\t\t\tdefer rctx.Pop()\n\t\t{{- end }}\n\t\t\tresTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) {\n\t\t\t\t{{- if $field.IsResolver }}\n\t\t\t\t\treturn ec.resolvers.{{ $field.ShortInvocation }})\n\t\t\t\t{{- else if $field.GoVarName }}\n\t\t\t\t\treturn obj.{{$field.GoVarName}}, nil\n\t\t\t\t{{- else if $field.GoMethodName }}\n\t\t\t\t\t{{- if $field.NoErr }}\n\t\t\t\t\t\treturn {{$field.GoMethodName}}({{ $field.CallArgs }}), nil\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\treturn {{$field.GoMethodName}}({{ $field.CallArgs }})\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn graphql.Null\n\t\t\t}\n\t\t\tif resTmp == nil {\n\t\t\t\treturn graphql.Null\n\t\t\t}\n\t\t\tres := resTmp.({{$field.Signature}})\n\t\t\t{{ $field.WriteJson }}\n\t\t{{- if $field.IsConcurrent }}\n\t\t\t})\n\t\t{{- end }}\n\t}\n{{ end }}\n", "generated.gotpl": "// Code generated by github.com/vektah/gqlgen, DO NOT EDIT.\n\npackage {{ .PackageName }}\n\nimport (\n{{- range $import := .Imports }}\n\t{{- $import.Write }}\n{{ end }}\n)\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(resolvers ResolverRoot) graphql.ExecutableSchema {\n\treturn &executableSchema{resolvers: resolvers}\n}\n\ntype ResolverRoot interface {\n{{- range $object := .Objects -}}\n\t{{ if $object.HasResolvers -}}\n\t\t{{$object.GQLType}}() {{$object.GQLType}}Resolver\n\t{{ end }}\n{{- end }}\n}\n\n{{- range $object := .Objects -}}\n\t{{ if $object.HasResolvers }}\n\t\ttype {{$object.GQLType}}Resolver interface {\n\t\t{{ range $field := $object.Fields -}}\n\t\t\t{{ $field.ShortResolverDeclaration }}\n\t\t{{ end }}\n\t\t}\n\t{{- end }}\n{{- end }}\n\ntype executableSchema struct {\n\tresolvers ResolverRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Query(ctx context.Context, op *ast.OperationDefinition) *graphql.Response {\n\t{{- if .QueryRoot }}\n\t\tec := executionContext{graphql.GetRequestContext(ctx), e.resolvers}\n\n\t\tbuf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {\n\t\t\tdata := ec._{{.QueryRoot.GQLType}}(ctx, op.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\treturn buf.Bytes()\n\t\t})\n\n\t\treturn &graphql.Response{\n\t\t\tData: buf,\n\t\t\tErrors: ec.Errors,\n\t\t}\n\t{{- else }}\n\t\treturn graphql.ErrorResponse(ctx, \"queries are not supported\")\n\t{{- end }}\n}\n\nfunc (e *executableSchema) Mutation(ctx context.Context, op *ast.OperationDefinition) *graphql.Response {\n\t{{- if .MutationRoot }}\n\t\tec := executionContext{graphql.GetRequestContext(ctx), e.resolvers}\n\n\t\tbuf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {\n\t\t\tdata := ec._{{.MutationRoot.GQLType}}(ctx, op.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\treturn buf.Bytes()\n\t\t})\n\n\t\treturn &graphql.Response{\n\t\t\tData: buf,\n\t\t\tErrors: ec.Errors,\n\t\t}\n\t{{- else }}\n\t\treturn graphql.ErrorResponse(ctx, \"mutations are not supported\")\n\t{{- end }}\n}\n\nfunc (e *executableSchema) Subscription(ctx context.Context, op *ast.OperationDefinition) func() *graphql.Response {\n\t{{- if .SubscriptionRoot }}\n\t\tec := executionContext{graphql.GetRequestContext(ctx), e.resolvers}\n\n\t\tnext := ec._{{.SubscriptionRoot.GQLType}}(ctx, op.SelectionSet)\n\t\tif ec.Errors != nil {\n\t\t\treturn graphql.OneShot(&graphql.Response{Data: []byte(\"null\"), Errors: ec.Errors})\n\t\t}\n\n\t\tvar buf bytes.Buffer\n\t\treturn func() *graphql.Response {\n\t\t\tbuf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {\n\t\t\t\tbuf.Reset()\n\t\t\t\tdata := next()\n\n\t\t\t\tif data == nil {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tdata.MarshalGQL(&buf)\n\t\t\t\treturn buf.Bytes()\n\t\t\t})\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf,\n\t\t\t\tErrors: ec.Errors,\n\t\t\t}\n\t\t}\n\t{{- else }}\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"subscriptions are not supported\"))\n\t{{- end }}\n}\n\ntype executionContext struct {\n\t*graphql.RequestContext\n\n\tresolvers ResolverRoot\n}\n\n{{- range $object := .Objects }}\n\t{{ template \"object.gotpl\" $object }}\n\n\t{{- range $field := $object.Fields }}\n\t\t{{ template \"field.gotpl\" $field }}\n\t{{ end }}\n{{- end}}\n\n{{- range $interface := .Interfaces }}\n\t{{ template \"interface.gotpl\" $interface }}\n{{- end }}\n\n{{- range $input := .Inputs }}\n\t{{ template \"input.gotpl\" $input }}\n{{- end }}\n\nfunc (ec *executionContext) introspectSchema() *introspection.Schema {\n\treturn introspection.WrapSchema(parsedSchema)\n}\n\nfunc (ec *executionContext) introspectType(name string) *introspection.Type {\n\treturn introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name])\n}\n\nvar parsedSchema = gqlparser.MustLoadSchema(\n\t&ast.Source{Name: {{.SchemaFilename|quote}}, Input: {{.SchemaRaw|rawQuote}}},\n)\n", "input.gotpl": "\t{{- if .IsMarshaled }}\n\tfunc Unmarshal{{ .GQLType }}(v interface{}) ({{.FullName}}, error) {\n\t\tvar it {{.FullName}}\n\t\tvar asMap = v.(map[string]interface{})\n\t\t{{ range $field := .Fields}}\n\t\t\t{{- if $field.Default}}\n\t\t\t\tif _, present := asMap[{{$field.GQLName|quote}}] ; !present {\n\t\t\t\t\tasMap[{{$field.GQLName|quote}}] = {{ $field.Default | dump }}\n\t\t\t\t}\n\t\t\t{{- end}}\n\t\t{{- end }}\n\n\t\tfor k, v := range asMap {\n\t\t\tswitch k {\n\t\t\t{{- range $field := .Fields }}\n\t\t\tcase {{$field.GQLName|quote}}:\n\t\t\t\tvar err error\n\t\t\t\t{{ $field.Unmarshal (print \"it.\" $field.GoVarName) \"v\" }}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn it, err\n\t\t\t\t}\n\t\t\t{{- end }}\n\t\t\t}\n\t\t}\n\n\t\treturn it, nil\n\t}\n\t{{- end }}\n", "interface.gotpl": "{{- $interface := . }}\n\nfunc (ec *executionContext) _{{$interface.GQLType}}(ctx context.Context, sel ast.SelectionSet, obj *{{$interface.FullName}}) graphql.Marshaler {\n\tswitch obj := (*obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\t{{- range $implementor := $interface.Implementors }}\n\t\t{{- if $implementor.ValueReceiver }}\n\t\t\tcase {{$implementor.FullName}}:\n\t\t\t\treturn ec._{{$implementor.GQLType}}(ctx, sel, &obj)\n\t\t{{- end}}\n\t\tcase *{{$implementor.FullName}}:\n\t\t\treturn ec._{{$implementor.GQLType}}(ctx, sel, obj)\n\t{{- end }}\n\tdefault:\n\t\tpanic(fmt.Errorf(\"unexpected type %T\", obj))\n\t}\n}\n", diff --git a/codegen/templates/field.gotpl b/codegen/templates/field.gotpl index 6459605766..b9c3e6c9e2 100644 --- a/codegen/templates/field.gotpl +++ b/codegen/templates/field.gotpl @@ -46,32 +46,27 @@ rctx.PushField(field.Alias) defer rctx.Pop() {{- end }} - - {{- if $field.IsResolver }} - resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + {{- if $field.IsResolver }} return ec.resolvers.{{ $field.ShortInvocation }} - }) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } - if resTmp == nil { - return graphql.Null - } - res := resTmp.({{$field.Signature}}) - {{- else if $field.GoVarName }} - res := obj.{{$field.GoVarName}} - {{- else if $field.GoMethodName }} - {{- if $field.NoErr }} - res := {{$field.GoMethodName}}({{ $field.CallArgs }}) - {{- else }} - res, err := {{$field.GoMethodName}}({{ $field.CallArgs }}) - if err != nil { - ec.Error(ctx, err) - return graphql.Null - } + {{- else if $field.GoVarName }} + return obj.{{$field.GoVarName}}, nil + {{- else if $field.GoMethodName }} + {{- if $field.NoErr }} + return {{$field.GoMethodName}}({{ $field.CallArgs }}), nil + {{- else }} + return {{$field.GoMethodName}}({{ $field.CallArgs }}) + {{- end }} {{- end }} - {{- end }} + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.({{$field.Signature}}) {{ $field.WriteJson }} {{- if $field.IsConcurrent }} }) From 97f131842addf705f39d56c21cd094cebeca435f Mon Sep 17 00:00:00 2001 From: Mathew Byrne Date: Mon, 23 Jul 2018 15:34:13 +1000 Subject: [PATCH 2/4] Remove comment about ResolverMiddleware Not true anymore! --- handler/graphql.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/handler/graphql.go b/handler/graphql.go index 4a2cd4837d..5e9d1c7ca8 100644 --- a/handler/graphql.go +++ b/handler/graphql.go @@ -74,8 +74,6 @@ func ErrorPresenter(f graphql.ErrorPresenterFunc) Option { // ResolverMiddleware allows you to define a function that will be called around every resolver, // useful for tracing and logging. -// It will only be called for user defined resolvers, any direct binding to models is assumed -// to cost nothing. func ResolverMiddleware(middleware graphql.ResolverMiddleware) Option { return func(cfg *Config) { if cfg.resolverHook == nil { From ec928cadf952e43d95092194a3aed42f2174e207 Mon Sep 17 00:00:00 2001 From: Mathew Byrne Date: Mon, 23 Jul 2018 15:35:38 +1000 Subject: [PATCH 3/4] Regenerate examples --- codegen/templates/data.go | 2 +- example/chat/generated.go | 481 +++++++++++++++++++++-- example/dataloader/generated.go | 517 ++++++++++++++++++++++-- example/scalars/generated.go | 504 ++++++++++++++++++++++-- example/selection/generated.go | 505 ++++++++++++++++++++++-- example/starwars/generated.go | 672 +++++++++++++++++++++++++++++--- example/todo/generated.go | 444 +++++++++++++++++++-- test/generated.go | 432 ++++++++++++++++++-- 8 files changed, 3260 insertions(+), 297 deletions(-) diff --git a/codegen/templates/data.go b/codegen/templates/data.go index 6d137b3530..52e4f88008 100644 --- a/codegen/templates/data.go +++ b/codegen/templates/data.go @@ -2,7 +2,7 @@ package templates var data = map[string]string{ "args.gotpl": "\t{{- if . }}args := map[string]interface{}{} {{end}}\n\t{{- range $i, $arg := . }}\n\t\tvar arg{{$i}} {{$arg.Signature }}\n\t\tif tmp, ok := field.Args[{{$arg.GQLName|quote}}]; ok {\n\t\t\tvar err error\n\t\t\t{{$arg.Unmarshal (print \"arg\" $i) \"tmp\" }}\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\t{{- if $arg.Object.Stream }}\n\t\t\t\t\treturn nil\n\t\t\t\t{{- else }}\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t{{- end }}\n\t\t\t}\n\t\t} {{ if $arg.Default }} else {\n\t\t\tvar tmp interface{} = {{ $arg.Default | dump }}\n\t\t\tvar err error\n\t\t\t{{$arg.Unmarshal (print \"arg\" $i) \"tmp\" }}\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\t{{- if $arg.Object.Stream }}\n\t\t\t\t\treturn nil\n\t\t\t\t{{- else }}\n\t\t\t\t\treturn graphql.Null\n\t\t\t\t{{- end }}\n\t\t\t}\n\t\t}\n\t\t{{end }}\n\t\targs[{{$arg.GQLName|quote}}] = arg{{$i}}\n\t{{- end -}}\n", - "field.gotpl": "{{ $field := . }}\n{{ $object := $field.Object }}\n\n{{- if $object.Stream }}\n\tfunc (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler {\n\t\t{{- template \"args.gotpl\" $field.Args }}\n\t\tctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{Field: field})\n\t\tresults, err := ec.resolvers.{{ $field.ShortInvocation }}\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t\treturn nil\n\t\t}\n\t\treturn func() graphql.Marshaler {\n\t\t\tres, ok := <-results\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tvar out graphql.OrderedMap\n\t\t\tout.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }())\n\t\t\treturn &out\n\t\t}\n\t}\n{{ else }}\n\tfunc (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler {\n\t\t{{- template \"args.gotpl\" $field.Args }}\n\n\t\t{{- if $field.IsConcurrent }}\n\t\t\tctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{\n\t\t\t\tObject: {{$object.GQLType|quote}},\n\t\t\t\tArgs: {{if $field.Args }}args{{else}}nil{{end}},\n\t\t\t\tField: field,\n\t\t\t})\n\t\t\treturn graphql.Defer(func() (ret graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tuserErr := ec.Recover(ctx, r)\n\t\t\t\t\t\tec.Error(ctx, userErr)\n\t\t\t\t\t\tret = graphql.Null\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t{{ else }}\n\t\t\trctx := graphql.GetResolverContext(ctx)\n\t\t\trctx.Object = {{$object.GQLType|quote}}\n\t\t\trctx.Args = {{if $field.Args }}args{{else}}nil{{end}}\n\t\t\trctx.Field = field\n\t\t\trctx.PushField(field.Alias)\n\t\t\tdefer rctx.Pop()\n\t\t{{- end }}\n\t\t\tresTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) {\n\t\t\t\t{{- if $field.IsResolver }}\n\t\t\t\t\treturn ec.resolvers.{{ $field.ShortInvocation }})\n\t\t\t\t{{- else if $field.GoVarName }}\n\t\t\t\t\treturn obj.{{$field.GoVarName}}, nil\n\t\t\t\t{{- else if $field.GoMethodName }}\n\t\t\t\t\t{{- if $field.NoErr }}\n\t\t\t\t\t\treturn {{$field.GoMethodName}}({{ $field.CallArgs }}), nil\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\treturn {{$field.GoMethodName}}({{ $field.CallArgs }})\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn graphql.Null\n\t\t\t}\n\t\t\tif resTmp == nil {\n\t\t\t\treturn graphql.Null\n\t\t\t}\n\t\t\tres := resTmp.({{$field.Signature}})\n\t\t\t{{ $field.WriteJson }}\n\t\t{{- if $field.IsConcurrent }}\n\t\t\t})\n\t\t{{- end }}\n\t}\n{{ end }}\n", + "field.gotpl": "{{ $field := . }}\n{{ $object := $field.Object }}\n\n{{- if $object.Stream }}\n\tfunc (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler {\n\t\t{{- template \"args.gotpl\" $field.Args }}\n\t\tctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{Field: field})\n\t\tresults, err := ec.resolvers.{{ $field.ShortInvocation }}\n\t\tif err != nil {\n\t\t\tec.Error(ctx, err)\n\t\t\treturn nil\n\t\t}\n\t\treturn func() graphql.Marshaler {\n\t\t\tres, ok := <-results\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tvar out graphql.OrderedMap\n\t\t\tout.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }())\n\t\t\treturn &out\n\t\t}\n\t}\n{{ else }}\n\tfunc (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler {\n\t\t{{- template \"args.gotpl\" $field.Args }}\n\n\t\t{{- if $field.IsConcurrent }}\n\t\t\tctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{\n\t\t\t\tObject: {{$object.GQLType|quote}},\n\t\t\t\tArgs: {{if $field.Args }}args{{else}}nil{{end}},\n\t\t\t\tField: field,\n\t\t\t})\n\t\t\treturn graphql.Defer(func() (ret graphql.Marshaler) {\n\t\t\t\tdefer func() {\n\t\t\t\t\tif r := recover(); r != nil {\n\t\t\t\t\t\tuserErr := ec.Recover(ctx, r)\n\t\t\t\t\t\tec.Error(ctx, userErr)\n\t\t\t\t\t\tret = graphql.Null\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t{{ else }}\n\t\t\trctx := graphql.GetResolverContext(ctx)\n\t\t\trctx.Object = {{$object.GQLType|quote}}\n\t\t\trctx.Args = {{if $field.Args }}args{{else}}nil{{end}}\n\t\t\trctx.Field = field\n\t\t\trctx.PushField(field.Alias)\n\t\t\tdefer rctx.Pop()\n\t\t{{- end }}\n\t\t\tresTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) {\n\t\t\t\t{{- if $field.IsResolver }}\n\t\t\t\t\treturn ec.resolvers.{{ $field.ShortInvocation }}\n\t\t\t\t{{- else if $field.GoVarName }}\n\t\t\t\t\treturn obj.{{$field.GoVarName}}, nil\n\t\t\t\t{{- else if $field.GoMethodName }}\n\t\t\t\t\t{{- if $field.NoErr }}\n\t\t\t\t\t\treturn {{$field.GoMethodName}}({{ $field.CallArgs }}), nil\n\t\t\t\t\t{{- else }}\n\t\t\t\t\t\treturn {{$field.GoMethodName}}({{ $field.CallArgs }})\n\t\t\t\t\t{{- end }}\n\t\t\t\t{{- end }}\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\tec.Error(ctx, err)\n\t\t\t\treturn graphql.Null\n\t\t\t}\n\t\t\tif resTmp == nil {\n\t\t\t\treturn graphql.Null\n\t\t\t}\n\t\t\tres := resTmp.({{$field.Signature}})\n\t\t\t{{ $field.WriteJson }}\n\t\t{{- if $field.IsConcurrent }}\n\t\t\t})\n\t\t{{- end }}\n\t}\n{{ end }}\n", "generated.gotpl": "// Code generated by github.com/vektah/gqlgen, DO NOT EDIT.\n\npackage {{ .PackageName }}\n\nimport (\n{{- range $import := .Imports }}\n\t{{- $import.Write }}\n{{ end }}\n)\n\n// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.\nfunc NewExecutableSchema(resolvers ResolverRoot) graphql.ExecutableSchema {\n\treturn &executableSchema{resolvers: resolvers}\n}\n\ntype ResolverRoot interface {\n{{- range $object := .Objects -}}\n\t{{ if $object.HasResolvers -}}\n\t\t{{$object.GQLType}}() {{$object.GQLType}}Resolver\n\t{{ end }}\n{{- end }}\n}\n\n{{- range $object := .Objects -}}\n\t{{ if $object.HasResolvers }}\n\t\ttype {{$object.GQLType}}Resolver interface {\n\t\t{{ range $field := $object.Fields -}}\n\t\t\t{{ $field.ShortResolverDeclaration }}\n\t\t{{ end }}\n\t\t}\n\t{{- end }}\n{{- end }}\n\ntype executableSchema struct {\n\tresolvers ResolverRoot\n}\n\nfunc (e *executableSchema) Schema() *ast.Schema {\n\treturn parsedSchema\n}\n\nfunc (e *executableSchema) Query(ctx context.Context, op *ast.OperationDefinition) *graphql.Response {\n\t{{- if .QueryRoot }}\n\t\tec := executionContext{graphql.GetRequestContext(ctx), e.resolvers}\n\n\t\tbuf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {\n\t\t\tdata := ec._{{.QueryRoot.GQLType}}(ctx, op.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\treturn buf.Bytes()\n\t\t})\n\n\t\treturn &graphql.Response{\n\t\t\tData: buf,\n\t\t\tErrors: ec.Errors,\n\t\t}\n\t{{- else }}\n\t\treturn graphql.ErrorResponse(ctx, \"queries are not supported\")\n\t{{- end }}\n}\n\nfunc (e *executableSchema) Mutation(ctx context.Context, op *ast.OperationDefinition) *graphql.Response {\n\t{{- if .MutationRoot }}\n\t\tec := executionContext{graphql.GetRequestContext(ctx), e.resolvers}\n\n\t\tbuf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {\n\t\t\tdata := ec._{{.MutationRoot.GQLType}}(ctx, op.SelectionSet)\n\t\t\tvar buf bytes.Buffer\n\t\t\tdata.MarshalGQL(&buf)\n\t\t\treturn buf.Bytes()\n\t\t})\n\n\t\treturn &graphql.Response{\n\t\t\tData: buf,\n\t\t\tErrors: ec.Errors,\n\t\t}\n\t{{- else }}\n\t\treturn graphql.ErrorResponse(ctx, \"mutations are not supported\")\n\t{{- end }}\n}\n\nfunc (e *executableSchema) Subscription(ctx context.Context, op *ast.OperationDefinition) func() *graphql.Response {\n\t{{- if .SubscriptionRoot }}\n\t\tec := executionContext{graphql.GetRequestContext(ctx), e.resolvers}\n\n\t\tnext := ec._{{.SubscriptionRoot.GQLType}}(ctx, op.SelectionSet)\n\t\tif ec.Errors != nil {\n\t\t\treturn graphql.OneShot(&graphql.Response{Data: []byte(\"null\"), Errors: ec.Errors})\n\t\t}\n\n\t\tvar buf bytes.Buffer\n\t\treturn func() *graphql.Response {\n\t\t\tbuf := ec.RequestMiddleware(ctx, func(ctx context.Context) []byte {\n\t\t\t\tbuf.Reset()\n\t\t\t\tdata := next()\n\n\t\t\t\tif data == nil {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tdata.MarshalGQL(&buf)\n\t\t\t\treturn buf.Bytes()\n\t\t\t})\n\n\t\t\treturn &graphql.Response{\n\t\t\t\tData: buf,\n\t\t\t\tErrors: ec.Errors,\n\t\t\t}\n\t\t}\n\t{{- else }}\n\t\treturn graphql.OneShot(graphql.ErrorResponse(ctx, \"subscriptions are not supported\"))\n\t{{- end }}\n}\n\ntype executionContext struct {\n\t*graphql.RequestContext\n\n\tresolvers ResolverRoot\n}\n\n{{- range $object := .Objects }}\n\t{{ template \"object.gotpl\" $object }}\n\n\t{{- range $field := $object.Fields }}\n\t\t{{ template \"field.gotpl\" $field }}\n\t{{ end }}\n{{- end}}\n\n{{- range $interface := .Interfaces }}\n\t{{ template \"interface.gotpl\" $interface }}\n{{- end }}\n\n{{- range $input := .Inputs }}\n\t{{ template \"input.gotpl\" $input }}\n{{- end }}\n\nfunc (ec *executionContext) introspectSchema() *introspection.Schema {\n\treturn introspection.WrapSchema(parsedSchema)\n}\n\nfunc (ec *executionContext) introspectType(name string) *introspection.Type {\n\treturn introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name])\n}\n\nvar parsedSchema = gqlparser.MustLoadSchema(\n\t&ast.Source{Name: {{.SchemaFilename|quote}}, Input: {{.SchemaRaw|rawQuote}}},\n)\n", "input.gotpl": "\t{{- if .IsMarshaled }}\n\tfunc Unmarshal{{ .GQLType }}(v interface{}) ({{.FullName}}, error) {\n\t\tvar it {{.FullName}}\n\t\tvar asMap = v.(map[string]interface{})\n\t\t{{ range $field := .Fields}}\n\t\t\t{{- if $field.Default}}\n\t\t\t\tif _, present := asMap[{{$field.GQLName|quote}}] ; !present {\n\t\t\t\t\tasMap[{{$field.GQLName|quote}}] = {{ $field.Default | dump }}\n\t\t\t\t}\n\t\t\t{{- end}}\n\t\t{{- end }}\n\n\t\tfor k, v := range asMap {\n\t\t\tswitch k {\n\t\t\t{{- range $field := .Fields }}\n\t\t\tcase {{$field.GQLName|quote}}:\n\t\t\t\tvar err error\n\t\t\t\t{{ $field.Unmarshal (print \"it.\" $field.GoVarName) \"v\" }}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn it, err\n\t\t\t\t}\n\t\t\t{{- end }}\n\t\t\t}\n\t\t}\n\n\t\treturn it, nil\n\t}\n\t{{- end }}\n", "interface.gotpl": "{{- $interface := . }}\n\nfunc (ec *executionContext) _{{$interface.GQLType}}(ctx context.Context, sel ast.SelectionSet, obj *{{$interface.FullName}}) graphql.Marshaler {\n\tswitch obj := (*obj).(type) {\n\tcase nil:\n\t\treturn graphql.Null\n\t{{- range $implementor := $interface.Implementors }}\n\t\t{{- if $implementor.ValueReceiver }}\n\t\t\tcase {{$implementor.FullName}}:\n\t\t\t\treturn ec._{{$implementor.GQLType}}(ctx, sel, &obj)\n\t\t{{- end}}\n\t\tcase *{{$implementor.FullName}}:\n\t\t\treturn ec._{{$implementor.GQLType}}(ctx, sel, obj)\n\t{{- end }}\n\tdefault:\n\t\tpanic(fmt.Errorf(\"unexpected type %T\", obj))\n\t}\n}\n", diff --git a/example/chat/generated.go b/example/chat/generated.go index adfcf9d820..8f68078a6f 100644 --- a/example/chat/generated.go +++ b/example/chat/generated.go @@ -6,6 +6,7 @@ import ( "bytes" context "context" strconv "strconv" + time "time" graphql "github.com/vektah/gqlgen/graphql" introspection "github.com/vektah/gqlgen/graphql/introspection" @@ -139,7 +140,17 @@ func (ec *executionContext) _Chatroom_name(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -150,7 +161,17 @@ func (ec *executionContext) _Chatroom_messages(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Messages + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Messages, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]Message) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -199,7 +220,17 @@ func (ec *executionContext) _Message_id(ctx context.Context, field graphql.Colle rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalID(res) } @@ -210,7 +241,17 @@ func (ec *executionContext) _Message_text(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Text + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Text, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -221,7 +262,17 @@ func (ec *executionContext) _Message_createdBy(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.CreatedBy + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.CreatedBy, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -232,7 +283,17 @@ func (ec *executionContext) _Message_createdAt(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.CreatedAt + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.CreatedAt, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(time.Time) return graphql.MarshalTime(res) } @@ -408,7 +469,17 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectType(args["name"].(string)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectType(args["name"].(string)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -422,7 +493,17 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectSchema() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectSchema(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Schema) if res == nil { return graphql.Null } @@ -515,7 +596,17 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -526,7 +617,17 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -537,7 +638,17 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Locations + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Locations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -557,7 +668,17 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -606,7 +727,17 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -617,7 +748,17 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -628,7 +769,17 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -639,7 +790,17 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -683,7 +844,17 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -694,7 +865,17 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -705,7 +886,17 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -725,7 +916,17 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -739,7 +940,17 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -750,7 +961,17 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -790,7 +1011,17 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -801,7 +1032,17 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -812,7 +1053,17 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -826,7 +1077,17 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DefaultValue + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DefaultValue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -868,7 +1129,17 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Types() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Types(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -888,7 +1159,17 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.QueryType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.QueryType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -902,7 +1183,17 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.MutationType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.MutationType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -916,7 +1207,17 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.SubscriptionType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.SubscriptionType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -930,7 +1231,17 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Directives() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Directives(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Directive) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -989,7 +1300,17 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Kind() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Kind(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1000,7 +1321,17 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1011,7 +1342,17 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1033,7 +1374,17 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Fields(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Fields(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Field) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1053,7 +1404,17 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Interfaces() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Interfaces(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1073,7 +1434,17 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PossibleTypes() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PossibleTypes(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1104,7 +1475,17 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.EnumValues(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.EnumValues(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.EnumValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1124,7 +1505,17 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.InputFields() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.InputFields(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1144,7 +1535,17 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.OfType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.OfType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } diff --git a/example/dataloader/generated.go b/example/dataloader/generated.go index 2e79402945..3eae1a8417 100644 --- a/example/dataloader/generated.go +++ b/example/dataloader/generated.go @@ -6,6 +6,7 @@ import ( "bytes" context "context" strconv "strconv" + time "time" graphql "github.com/vektah/gqlgen/graphql" introspection "github.com/vektah/gqlgen/graphql/introspection" @@ -107,7 +108,17 @@ func (ec *executionContext) _Address_id(ctx context.Context, field graphql.Colle rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(int) return graphql.MarshalInt(res) } @@ -118,7 +129,17 @@ func (ec *executionContext) _Address_street(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Street + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Street, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -129,7 +150,17 @@ func (ec *executionContext) _Address_country(ctx context.Context, field graphql. rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Country + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Country, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -169,7 +200,17 @@ func (ec *executionContext) _Customer_id(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(int) return graphql.MarshalInt(res) } @@ -180,7 +221,17 @@ func (ec *executionContext) _Customer_name(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -286,7 +337,17 @@ func (ec *executionContext) _Item_name(ctx context.Context, field graphql.Collec rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -326,7 +387,17 @@ func (ec *executionContext) _Order_id(ctx context.Context, field graphql.Collect rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(int) return graphql.MarshalInt(res) } @@ -337,7 +408,17 @@ func (ec *executionContext) _Order_date(ctx context.Context, field graphql.Colle rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Date + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Date, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(time.Time) return graphql.MarshalTime(res) } @@ -348,7 +429,17 @@ func (ec *executionContext) _Order_amount(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Amount + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Amount, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(float64) return graphql.MarshalFloat(res) } @@ -558,7 +649,17 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectType(args["name"].(string)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectType(args["name"].(string)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -572,7 +673,17 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectSchema() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectSchema(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Schema) if res == nil { return graphql.Null } @@ -615,7 +726,17 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -626,7 +747,17 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -637,7 +768,17 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Locations + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Locations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -657,7 +798,17 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -706,7 +857,17 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -717,7 +878,17 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -728,7 +899,17 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -739,7 +920,17 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -783,7 +974,17 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -794,7 +995,17 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -805,7 +1016,17 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -825,7 +1046,17 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -839,7 +1070,17 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -850,7 +1091,17 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -890,7 +1141,17 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -901,7 +1162,17 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -912,7 +1183,17 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -926,7 +1207,17 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DefaultValue + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DefaultValue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -968,7 +1259,17 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Types() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Types(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -988,7 +1289,17 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.QueryType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.QueryType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1002,7 +1313,17 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.MutationType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.MutationType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1016,7 +1337,17 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.SubscriptionType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.SubscriptionType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1030,7 +1361,17 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Directives() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Directives(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Directive) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1089,7 +1430,17 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Kind() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Kind(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1100,7 +1451,17 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1111,7 +1472,17 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1133,7 +1504,17 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Fields(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Fields(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Field) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1153,7 +1534,17 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Interfaces() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Interfaces(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1173,7 +1564,17 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PossibleTypes() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PossibleTypes(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1204,7 +1605,17 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.EnumValues(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.EnumValues(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.EnumValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1224,7 +1635,17 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.InputFields() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.InputFields(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1244,7 +1665,17 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.OfType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.OfType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } diff --git a/example/scalars/generated.go b/example/scalars/generated.go index db01339de0..43506e7e81 100644 --- a/example/scalars/generated.go +++ b/example/scalars/generated.go @@ -104,7 +104,17 @@ func (ec *executionContext) _Address_id(ctx context.Context, field graphql.Colle rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(external.ObjectID) return model.MarshalID(res) } @@ -115,7 +125,17 @@ func (ec *executionContext) _Address_location(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Location + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Location, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*model.Point) if res == nil { return graphql.Null } @@ -276,7 +296,17 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectType(args["name"].(string)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectType(args["name"].(string)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -290,7 +320,17 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectSchema() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectSchema(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Schema) if res == nil { return graphql.Null } @@ -341,7 +381,17 @@ func (ec *executionContext) _User_id(ctx context.Context, field graphql.Collecte rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(external.ObjectID) return model.MarshalID(res) } @@ -352,7 +402,17 @@ func (ec *executionContext) _User_name(ctx context.Context, field graphql.Collec rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -363,7 +423,17 @@ func (ec *executionContext) _User_created(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Created + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Created, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(time.Time) return model.MarshalTimestamp(res) } @@ -374,7 +444,17 @@ func (ec *executionContext) _User_isBanned(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsBanned + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsBanned, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(bool(res)) } @@ -445,7 +525,17 @@ func (ec *executionContext) _User_address(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Address + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Address, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(model.Address) return ec._Address(ctx, field.Selections, &res) } @@ -456,7 +546,17 @@ func (ec *executionContext) _User_tier(ctx context.Context, field graphql.Collec rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Tier + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Tier, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(model.Tier) return res } @@ -496,7 +596,17 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -507,7 +617,17 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -518,7 +638,17 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Locations + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Locations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -538,7 +668,17 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -587,7 +727,17 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -598,7 +748,17 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -609,7 +769,17 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -620,7 +790,17 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -664,7 +844,17 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -675,7 +865,17 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -686,7 +886,17 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -706,7 +916,17 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -720,7 +940,17 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -731,7 +961,17 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -771,7 +1011,17 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -782,7 +1032,17 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -793,7 +1053,17 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -807,7 +1077,17 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DefaultValue + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DefaultValue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -849,7 +1129,17 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Types() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Types(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -869,7 +1159,17 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.QueryType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.QueryType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -883,7 +1183,17 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.MutationType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.MutationType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -897,7 +1207,17 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.SubscriptionType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.SubscriptionType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -911,7 +1231,17 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Directives() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Directives(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Directive) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -970,7 +1300,17 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Kind() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Kind(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -981,7 +1321,17 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -992,7 +1342,17 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1014,7 +1374,17 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Fields(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Fields(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Field) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1034,7 +1404,17 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Interfaces() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Interfaces(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1054,7 +1434,17 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PossibleTypes() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PossibleTypes(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1085,7 +1475,17 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.EnumValues(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.EnumValues(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.EnumValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1105,7 +1505,17 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.InputFields() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.InputFields(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1125,7 +1535,17 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.OfType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.OfType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } diff --git a/example/selection/generated.go b/example/selection/generated.go index c493da18cf..007d74a2ce 100644 --- a/example/selection/generated.go +++ b/example/selection/generated.go @@ -7,6 +7,7 @@ import ( context "context" fmt "fmt" strconv "strconv" + time "time" graphql "github.com/vektah/gqlgen/graphql" introspection "github.com/vektah/gqlgen/graphql/introspection" @@ -100,7 +101,17 @@ func (ec *executionContext) _Like_reaction(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Reaction + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Reaction, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -111,7 +122,17 @@ func (ec *executionContext) _Like_sent(ctx context.Context, field graphql.Collec rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Sent + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Sent, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(time.Time) return graphql.MarshalTime(res) } @@ -122,7 +143,17 @@ func (ec *executionContext) _Like_selection(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Selection + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Selection, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -142,7 +173,17 @@ func (ec *executionContext) _Like_collected(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Collected + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Collected, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -191,7 +232,17 @@ func (ec *executionContext) _Post_message(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Message + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Message, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -202,7 +253,17 @@ func (ec *executionContext) _Post_sent(ctx context.Context, field graphql.Collec rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Sent + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Sent, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(time.Time) return graphql.MarshalTime(res) } @@ -213,7 +274,17 @@ func (ec *executionContext) _Post_selection(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Selection + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Selection, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -233,7 +304,17 @@ func (ec *executionContext) _Post_collected(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Collected + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Collected, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -334,7 +415,17 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectType(args["name"].(string)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectType(args["name"].(string)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -348,7 +439,17 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectSchema() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectSchema(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Schema) if res == nil { return graphql.Null } @@ -391,7 +492,17 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -402,7 +513,17 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -413,7 +534,17 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Locations + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Locations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -433,7 +564,17 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -482,7 +623,17 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -493,7 +644,17 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -504,7 +665,17 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -515,7 +686,17 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -559,7 +740,17 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -570,7 +761,17 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -581,7 +782,17 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -601,7 +812,17 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -615,7 +836,17 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -626,7 +857,17 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -666,7 +907,17 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -677,7 +928,17 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -688,7 +949,17 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -702,7 +973,17 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DefaultValue + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DefaultValue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -744,7 +1025,17 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Types() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Types(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -764,7 +1055,17 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.QueryType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.QueryType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -778,7 +1079,17 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.MutationType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.MutationType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -792,7 +1103,17 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.SubscriptionType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.SubscriptionType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -806,7 +1127,17 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Directives() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Directives(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Directive) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -865,7 +1196,17 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Kind() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Kind(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -876,7 +1217,17 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -887,7 +1238,17 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -909,7 +1270,17 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Fields(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Fields(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Field) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -929,7 +1300,17 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Interfaces() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Interfaces(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -949,7 +1330,17 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PossibleTypes() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PossibleTypes(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -980,7 +1371,17 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.EnumValues(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.EnumValues(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.EnumValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1000,7 +1401,17 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.InputFields() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.InputFields(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1020,7 +1431,17 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.OfType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.OfType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } diff --git a/example/starwars/generated.go b/example/starwars/generated.go index f97d74c5ce..8c1b64d157 100644 --- a/example/starwars/generated.go +++ b/example/starwars/generated.go @@ -148,7 +148,17 @@ func (ec *executionContext) _Droid_id(ctx context.Context, field graphql.Collect rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalID(res) } @@ -159,7 +169,17 @@ func (ec *executionContext) _Droid_name(ctx context.Context, field graphql.Colle rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -270,7 +290,17 @@ func (ec *executionContext) _Droid_appearsIn(ctx context.Context, field graphql. rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.AppearsIn + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.AppearsIn, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]Episode) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -290,7 +320,17 @@ func (ec *executionContext) _Droid_primaryFunction(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PrimaryFunction + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PrimaryFunction, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -330,7 +370,17 @@ func (ec *executionContext) _FriendsConnection_totalCount(ctx context.Context, f rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.TotalCount() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.TotalCount(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(int) return graphql.MarshalInt(res) } @@ -419,7 +469,17 @@ func (ec *executionContext) _FriendsConnection_pageInfo(ctx context.Context, fie rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PageInfo() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PageInfo(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(PageInfo) return ec._PageInfo(ctx, field.Selections, &res) } @@ -455,7 +515,17 @@ func (ec *executionContext) _FriendsEdge_cursor(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Cursor + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Cursor, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalID(res) } @@ -466,7 +536,17 @@ func (ec *executionContext) _FriendsEdge_node(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Node + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Node, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(Character) return ec._Character(ctx, field.Selections, &res) } @@ -514,7 +594,17 @@ func (ec *executionContext) _Human_id(ctx context.Context, field graphql.Collect rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalID(res) } @@ -525,7 +615,17 @@ func (ec *executionContext) _Human_name(ctx context.Context, field graphql.Colle rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -556,7 +656,17 @@ func (ec *executionContext) _Human_height(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Height(args["unit"].(LengthUnit)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Height(args["unit"].(LengthUnit)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(float64) return graphql.MarshalFloat(res) } @@ -567,7 +677,17 @@ func (ec *executionContext) _Human_mass(ctx context.Context, field graphql.Colle rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Mass + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Mass, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(float64) return graphql.MarshalFloat(res) } @@ -678,7 +798,17 @@ func (ec *executionContext) _Human_appearsIn(ctx context.Context, field graphql. rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.AppearsIn + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.AppearsIn, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]Episode) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -836,7 +966,17 @@ func (ec *executionContext) _PageInfo_startCursor(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.StartCursor + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.StartCursor, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalID(res) } @@ -847,7 +987,17 @@ func (ec *executionContext) _PageInfo_endCursor(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.EndCursor + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.EndCursor, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalID(res) } @@ -858,7 +1008,17 @@ func (ec *executionContext) _PageInfo_hasNextPage(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.HasNextPage + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.HasNextPage, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -1261,7 +1421,17 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectType(args["name"].(string)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectType(args["name"].(string)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1275,7 +1445,17 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectSchema() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectSchema(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Schema) if res == nil { return graphql.Null } @@ -1316,7 +1496,17 @@ func (ec *executionContext) _Review_stars(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Stars + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Stars, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(int) return graphql.MarshalInt(res) } @@ -1327,7 +1517,17 @@ func (ec *executionContext) _Review_commentary(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Commentary + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Commentary, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) if res == nil { return graphql.Null } @@ -1341,7 +1541,17 @@ func (ec *executionContext) _Review_time(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Time + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Time, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(time.Time) return graphql.MarshalTime(res) } @@ -1381,7 +1591,17 @@ func (ec *executionContext) _Starship_id(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalID(res) } @@ -1392,7 +1612,17 @@ func (ec *executionContext) _Starship_name(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1453,7 +1683,17 @@ func (ec *executionContext) _Starship_history(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.History + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.History, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([][]int) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1511,7 +1751,17 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1522,7 +1772,17 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1533,7 +1793,17 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Locations + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Locations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1553,7 +1823,17 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1602,7 +1882,17 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1613,7 +1903,17 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1624,7 +1924,17 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -1635,7 +1945,17 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1679,7 +1999,17 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1690,7 +2020,17 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1701,7 +2041,17 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1721,7 +2071,17 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1735,7 +2095,17 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -1746,7 +2116,17 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1786,7 +2166,17 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1797,7 +2187,17 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1808,7 +2208,17 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1822,7 +2232,17 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DefaultValue + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DefaultValue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1864,7 +2284,17 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Types() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Types(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1884,7 +2314,17 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.QueryType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.QueryType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1898,7 +2338,17 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.MutationType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.MutationType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1912,7 +2362,17 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.SubscriptionType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.SubscriptionType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -1926,7 +2386,17 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Directives() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Directives(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Directive) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1985,7 +2455,17 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Kind() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Kind(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1996,7 +2476,17 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -2007,7 +2497,17 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -2029,7 +2529,17 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Fields(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Fields(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Field) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -2049,7 +2559,17 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Interfaces() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Interfaces(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -2069,7 +2589,17 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PossibleTypes() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PossibleTypes(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -2100,7 +2630,17 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.EnumValues(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.EnumValues(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.EnumValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -2120,7 +2660,17 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.InputFields() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.InputFields(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -2140,7 +2690,17 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.OfType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.OfType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } diff --git a/example/todo/generated.go b/example/todo/generated.go index f93f22d4e7..775ce980e4 100644 --- a/example/todo/generated.go +++ b/example/todo/generated.go @@ -357,7 +357,17 @@ func (ec *executionContext) _MyQuery___type(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectType(args["name"].(string)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectType(args["name"].(string)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -371,7 +381,17 @@ func (ec *executionContext) _MyQuery___schema(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectSchema() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectSchema(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Schema) if res == nil { return graphql.Null } @@ -412,7 +432,17 @@ func (ec *executionContext) _Todo_id(ctx context.Context, field graphql.Collecte rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.ID + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.ID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(int) return graphql.MarshalInt(res) } @@ -423,7 +453,17 @@ func (ec *executionContext) _Todo_text(ctx context.Context, field graphql.Collec rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Text + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Text, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -434,7 +474,17 @@ func (ec *executionContext) _Todo_done(ctx context.Context, field graphql.Collec rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Done + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Done, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -474,7 +524,17 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -485,7 +545,17 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -496,7 +566,17 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Locations + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Locations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -516,7 +596,17 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -565,7 +655,17 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -576,7 +676,17 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -587,7 +697,17 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -598,7 +718,17 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -642,7 +772,17 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -653,7 +793,17 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -664,7 +814,17 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -684,7 +844,17 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -698,7 +868,17 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -709,7 +889,17 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -749,7 +939,17 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -760,7 +960,17 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -771,7 +981,17 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -785,7 +1005,17 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DefaultValue + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DefaultValue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -827,7 +1057,17 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Types() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Types(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -847,7 +1087,17 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.QueryType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.QueryType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -861,7 +1111,17 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.MutationType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.MutationType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -875,7 +1135,17 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.SubscriptionType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.SubscriptionType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -889,7 +1159,17 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Directives() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Directives(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Directive) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -948,7 +1228,17 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Kind() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Kind(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -959,7 +1249,17 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -970,7 +1270,17 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -992,7 +1302,17 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Fields(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Fields(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Field) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1012,7 +1332,17 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Interfaces() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Interfaces(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1032,7 +1362,17 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PossibleTypes() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PossibleTypes(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1063,7 +1403,17 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.EnumValues(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.EnumValues(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.EnumValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1083,7 +1433,17 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.InputFields() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.InputFields(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1103,7 +1463,17 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.OfType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.OfType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } diff --git a/test/generated.go b/test/generated.go index c8d977533d..40e6aaaa1e 100644 --- a/test/generated.go +++ b/test/generated.go @@ -405,7 +405,17 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectType(args["name"].(string)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectType(args["name"].(string)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -419,7 +429,17 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := ec.introspectSchema() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return ec.introspectSchema(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Schema) if res == nil { return graphql.Null } @@ -458,7 +478,17 @@ func (ec *executionContext) _User_name(ctx context.Context, field graphql.Collec rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -531,7 +561,17 @@ func (ec *executionContext) _Viewer_user(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.User + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.User, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*remote_api.User) if res == nil { return graphql.Null } @@ -574,7 +614,17 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -585,7 +635,17 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -596,7 +656,17 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Locations + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Locations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]string) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -616,7 +686,17 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -665,7 +745,17 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -676,7 +766,17 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -687,7 +787,17 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -698,7 +808,17 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -742,7 +862,17 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -753,7 +883,17 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -764,7 +904,17 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Args + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -784,7 +934,17 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -798,7 +958,17 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.IsDeprecated + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.IsDeprecated, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(bool) return graphql.MarshalBoolean(res) } @@ -809,7 +979,17 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DeprecationReason + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DeprecationReason, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -849,7 +1029,17 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -860,7 +1050,17 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -871,7 +1071,17 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Type + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -885,7 +1095,17 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.DefaultValue + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.DefaultValue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -927,7 +1147,17 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Types() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Types(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -947,7 +1177,17 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.QueryType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.QueryType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -961,7 +1201,17 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.MutationType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.MutationType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -975,7 +1225,17 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.SubscriptionType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.SubscriptionType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } @@ -989,7 +1249,17 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Directives() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Directives(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Directive) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1048,7 +1318,17 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Kind() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Kind(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1059,7 +1339,17 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Name() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Name(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1070,7 +1360,17 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Description() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(string) return graphql.MarshalString(res) } @@ -1092,7 +1392,17 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Fields(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Fields(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Field) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1112,7 +1422,17 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.Interfaces() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.Interfaces(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1132,7 +1452,17 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.PossibleTypes() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.PossibleTypes(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1163,7 +1493,17 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.EnumValues(args["includeDeprecated"].(bool)) + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.EnumValues(args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.EnumValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1183,7 +1523,17 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.InputFields() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.InputFields(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) arr1 := graphql.Array{} for idx1 := range res { arr1 = append(arr1, func() graphql.Marshaler { @@ -1203,7 +1553,17 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co rctx.Field = field rctx.PushField(field.Alias) defer rctx.Pop() - res := obj.OfType() + resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) { + return obj.OfType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) if res == nil { return graphql.Null } From 7292be78338605c49ef96c55595d53aba243682a Mon Sep 17 00:00:00 2001 From: Mathew Byrne Date: Tue, 24 Jul 2018 09:18:49 +1000 Subject: [PATCH 4/4] Rename CastType to AliasedType This field stores a Ref if a type is a builtin that has been aliased. In most cases if this is set, we want to use this as the type signature instead of the named type resolved from the schema. --- codegen/type.go | 17 ++++++++++------- codegen/util.go | 2 +- example/scalars/generated.go | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/codegen/type.go b/codegen/type.go index 7af24b3c83..689f4e4aa3 100644 --- a/codegen/type.go +++ b/codegen/type.go @@ -26,8 +26,8 @@ type Ref struct { type Type struct { *NamedType - Modifiers []string - CastType *Ref // the type to cast to when unmarshalling + Modifiers []string + AliasedType *Ref } const ( @@ -47,6 +47,9 @@ func (t Ref) PkgDot() string { } func (t Type) Signature() string { + if t.AliasedType != nil { + return strings.Join(t.Modifiers, "") + t.AliasedType.FullName() + } return strings.Join(t.Modifiers, "") + t.FullName() } @@ -125,11 +128,11 @@ func (t Type) unmarshal(result, raw string, remainingMods []string, depth int) s } realResult := result - if t.CastType != nil { + if t.AliasedType != nil { result = "castTmp" } - return tpl(`{{- if .t.CastType }} + return tpl(`{{- if .t.AliasedType }} var castTmp {{.t.FullName}} {{ end }} {{- if eq .t.GoType "map[string]interface{}" }} @@ -139,8 +142,8 @@ func (t Type) unmarshal(result, raw string, remainingMods []string, depth int) s {{- else -}} err = (&{{.result}}).UnmarshalGQL({{.raw}}) {{- end }} - {{- if .t.CastType }} - {{ .realResult }} = {{.t.CastType.FullName}}(castTmp) + {{- if .t.AliasedType }} + {{ .realResult }} = {{.t.AliasedType.FullName}}(castTmp) {{- end }}`, map[string]interface{}{ "realResult": realResult, "result": result, @@ -150,7 +153,7 @@ func (t Type) unmarshal(result, raw string, remainingMods []string, depth int) s } func (t Type) Marshal(val string) string { - if t.CastType != nil { + if t.AliasedType != nil { val = t.GoType + "(" + val + ")" } diff --git a/codegen/util.go b/codegen/util.go index 5ff4107432..5c5bd5cf0e 100644 --- a/codegen/util.go +++ b/codegen/util.go @@ -276,7 +276,7 @@ func validateTypeBinding(imports *Imports, field *Field, goType types.Type) erro field.Type.Modifiers = modifiersFromGoType(goType) pkg, typ := pkgAndType(goType.String()) imp := imports.findByPath(pkg) - field.CastType = &Ref{GoType: typ, Import: imp} + field.AliasedType = &Ref{GoType: typ, Import: imp} return nil } diff --git a/example/scalars/generated.go b/example/scalars/generated.go index 43506e7e81..f29f628593 100644 --- a/example/scalars/generated.go +++ b/example/scalars/generated.go @@ -454,7 +454,7 @@ func (ec *executionContext) _User_isBanned(ctx context.Context, field graphql.Co if resTmp == nil { return graphql.Null } - res := resTmp.(bool) + res := resTmp.(model.Banned) return graphql.MarshalBoolean(bool(res)) }