field.gotpl

 1{{ $field := . }}
 2{{ $object := $field.Object }}
 3
 4{{- if $object.Stream }}
 5	func (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler {
 6		{{- if $field.Args }}
 7			rawArgs := field.ArgumentMap(ec.Variables)
 8			args, err := {{ $field.ArgsFunc }}(rawArgs)
 9			if err != nil {
10				ec.Error(ctx, err)
11				return nil
12			}
13		{{- end }}
14		ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
15			Field: field,
16		})
17		results, err := ec.resolvers.{{ $field.ShortInvocation }}
18		if err != nil {
19			ec.Error(ctx, err)
20			return nil
21		}
22		return func() graphql.Marshaler {
23			res, ok := <-results
24			if !ok {
25				return nil
26			}
27			var out graphql.OrderedMap
28			out.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }())
29			return &out
30		}
31	}
32{{ else }}
33	// nolint: vetshadow
34	func (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler {
35		{{- if $field.Args }}
36			rawArgs := field.ArgumentMap(ec.Variables)
37			args, err := {{ $field.ArgsFunc }}(rawArgs)
38			if err != nil {
39				ec.Error(ctx, err)
40				return graphql.Null
41			}
42		{{- end }}
43		rctx := &graphql.ResolverContext{
44			Object: {{$object.GQLType|quote}},
45			Args: {{if $field.Args }}args{{else}}nil{{end}},
46			Field: field,
47		}
48		ctx = graphql.WithResolverContext(ctx, rctx)
49		resTmp := ec.FieldMiddleware(ctx, {{if $object.Root}}nil{{else}}obj{{end}}, func(ctx context.Context) (interface{}, error) {
50			{{- if $field.IsResolver }}
51				return ec.resolvers.{{ $field.ShortInvocation }}
52			{{- else if $field.IsMethod }}
53				{{- if $field.NoErr }}
54					return {{$field.GoReceiverName}}.{{$field.GoFieldName}}({{ $field.CallArgs }}), nil
55				{{- else }}
56					return {{$field.GoReceiverName}}.{{$field.GoFieldName}}({{ $field.CallArgs }})
57				{{- end }}
58			{{- else if $field.IsVariable }}
59				return {{$field.GoReceiverName}}.{{$field.GoFieldName}}, nil
60			{{- end }}
61		})
62		if resTmp == nil {
63			{{- if $field.ASTType.NonNull }}
64				if !ec.HasError(rctx) {
65					ec.Errorf(ctx, "must not be null")
66				}
67			{{- end }}
68			return graphql.Null
69		}
70		res := resTmp.({{$field.Signature}})
71		rctx.Result = res
72		{{ $field.WriteJson }}
73	}
74{{ end }}