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 {{- template "args.gotpl" $field.Args }}
7 ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{Field: field})
8 results, err := ec.resolvers.{{ $object.GQLType }}_{{ $field.GQLName }}({{ $field.CallArgs }})
9 if err != nil {
10 ec.Error(ctx, err)
11 return nil
12 }
13 return func() graphql.Marshaler {
14 res, ok := <-results
15 if !ok {
16 return nil
17 }
18 var out graphql.OrderedMap
19 out.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }())
20 return &out
21 }
22 }
23{{ else }}
24 func (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler {
25 {{- template "args.gotpl" $field.Args }}
26
27 {{- if $field.IsConcurrent }}
28 ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{
29 Object: {{$object.GQLType|quote}},
30 Args: {{if $field.Args }}args{{else}}nil{{end}},
31 Field: field,
32 })
33 return graphql.Defer(func() (ret graphql.Marshaler) {
34 defer func() {
35 if r := recover(); r != nil {
36 userErr := ec.Recover(ctx, r)
37 ec.Error(ctx, userErr)
38 ret = graphql.Null
39 }
40 }()
41 {{ else }}
42 rctx := graphql.GetResolverContext(ctx)
43 rctx.Object = {{$object.GQLType|quote}}
44 rctx.Args = {{if $field.Args }}args{{else}}nil{{end}}
45 rctx.Field = field
46 rctx.PushField(field.Alias)
47 defer rctx.Pop()
48 {{- end }}
49
50 {{- if $field.IsResolver }}
51 resTmp, err := ec.ResolverMiddleware(ctx, func(ctx context.Context) (interface{}, error) {
52 return ec.resolvers.{{ $object.GQLType }}_{{ $field.GQLName }}({{ $field.CallArgs }})
53 })
54 if err != nil {
55 ec.Error(ctx, err)
56 return graphql.Null
57 }
58 if resTmp == nil {
59 return graphql.Null
60 }
61 res := resTmp.({{$field.Signature}})
62 {{- else if $field.GoVarName }}
63 res := obj.{{$field.GoVarName}}
64 {{- else if $field.GoMethodName }}
65 {{- if $field.NoErr }}
66 res := {{$field.GoMethodName}}({{ $field.CallArgs }})
67 {{- else }}
68 res, err := {{$field.GoMethodName}}({{ $field.CallArgs }})
69 if err != nil {
70 ec.Error(ctx, err)
71 return graphql.Null
72 }
73 {{- end }}
74 {{- end }}
75 {{ $field.WriteJson }}
76 {{- if $field.IsConcurrent }}
77 })
78 {{- end }}
79 }
80{{ end }}