github.com/tobiash/gqlgen@v0.5.1/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  		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 }}