github.com/opiuman/genqlient@v1.0.0/generate/operation.go.tmpl (about)

     1  {{.Doc}}
     2  func {{.Name}}(
     3      {{if ne .Config.ContextType "-" -}}
     4      ctx {{ref .Config.ContextType}},
     5      {{end}}
     6      {{- if not .Config.ClientGetter -}}
     7      client {{ref "github.com/opiuman/genqlient/graphql.Client"}},
     8      {{end}}
     9      {{- if .Input -}}
    10      {{- range .Input.Fields -}}
    11      {{/* the GraphQL name here is the user-specified variable-name */ -}}
    12      {{.GraphQLName}} {{.GoType.Reference}},
    13      {{end -}}
    14      {{end -}}
    15      opts ...{{ref "github.com/opiuman/genqlient/graphql.RequestOption"}},
    16  ) (*{{.ResponseName}}, {{if .Config.Extensions -}}map[string]interface{},{{end}} error) {
    17      req := &graphql.Request{
    18          OpName: "{{.Name}}",
    19          Query:  `{{.Body}}`,
    20      {{if .Input -}}
    21          Variables: &{{.Input.GoName}}{
    22          {{range .Input.Fields -}}
    23          {{.GoName}}: {{.GraphQLName}},
    24          {{end -}}
    25          },
    26      {{end -}}
    27      }
    28      var err error
    29      {{if .Config.ClientGetter -}}
    30      var client graphql.Client
    31  
    32      client, err = {{ref .Config.ClientGetter}}({{if ne .Config.ContextType "-"}}ctx{{else}}{{end}})
    33      if err != nil {
    34          return nil, {{if .Config.Extensions -}}nil,{{end -}} err
    35      }
    36      {{end}}
    37      var data {{.ResponseName}}
    38      resp := &graphql.Response{Data: &data}
    39  
    40      err = client.MakeRequest(
    41          {{if ne .Config.ContextType "-"}}ctx{{else}}nil{{end}},
    42          req,
    43          resp,
    44          opts...,
    45      )
    46  	
    47      return &data, {{if .Config.Extensions -}}resp.Extensions,{{end -}} err
    48  }