github.com/matiasanaya/gqlgen@v0.6.0/codegen/templates/field.gotpl (about) 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 rctx := ctx // FIXME: subscriptions are missing request middleware stack https://github.com/99designs/gqlgen/issues/259 18 results, err := ec.resolvers.{{ $field.ShortInvocation }} 19 if err != nil { 20 ec.Error(ctx, err) 21 return nil 22 } 23 return func() graphql.Marshaler { 24 res, ok := <-results 25 if !ok { 26 return nil 27 } 28 var out graphql.OrderedMap 29 out.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }()) 30 return &out 31 } 32 } 33 {{ else }} 34 // nolint: vetshadow 35 func (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler { 36 {{- if $field.Args }} 37 rawArgs := field.ArgumentMap(ec.Variables) 38 args, err := {{ $field.ArgsFunc }}(rawArgs) 39 if err != nil { 40 ec.Error(ctx, err) 41 return graphql.Null 42 } 43 {{- end }} 44 rctx := &graphql.ResolverContext{ 45 Object: {{$object.GQLType|quote}}, 46 Args: {{if $field.Args }}args{{else}}nil{{end}}, 47 Field: field, 48 } 49 ctx = graphql.WithResolverContext(ctx, rctx) 50 resTmp := ec.FieldMiddleware(ctx, {{if $object.Root}}nil{{else}}obj{{end}}, func(rctx context.Context) (interface{}, error) { 51 ctx = rctx // use context from middleware stack in children 52 {{- if $field.IsResolver }} 53 return ec.resolvers.{{ $field.ShortInvocation }} 54 {{- else if $field.IsMethod }} 55 {{- if $field.NoErr }} 56 return {{$field.GoReceiverName}}.{{$field.GoFieldName}}({{ $field.CallArgs }}), nil 57 {{- else }} 58 return {{$field.GoReceiverName}}.{{$field.GoFieldName}}({{ $field.CallArgs }}) 59 {{- end }} 60 {{- else if $field.IsVariable }} 61 return {{$field.GoReceiverName}}.{{$field.GoFieldName}}, nil 62 {{- end }} 63 }) 64 if resTmp == nil { 65 {{- if $field.ASTType.NonNull }} 66 if !ec.HasError(rctx) { 67 ec.Errorf(ctx, "must not be null") 68 } 69 {{- end }} 70 return graphql.Null 71 } 72 res := resTmp.({{$field.Signature}}) 73 rctx.Result = res 74 {{ $field.WriteJson }} 75 } 76 {{ end }}