github.com/Desuuuu/genqlient@v0.5.3/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/Desuuuu/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  ) (*{{.ResponseName}}, {{if .Config.Extensions -}}map[string]interface{},{{end}} error) {
    16      req := &graphql.Request{
    17          OpName: "{{.Name}}",
    18          Query:  `{{.Body}}`,
    19      {{if .Input -}}
    20          Variables: &{{.Input.GoName}}{
    21          {{range .Input.Fields -}}
    22          {{.GoName}}: {{.GraphQLName}},
    23          {{end -}}
    24          },
    25      {{end -}}
    26      }
    27      var err error
    28      {{if .Config.ClientGetter -}}
    29      var client graphql.Client
    30  
    31      client, err = {{ref .Config.ClientGetter}}({{if ne .Config.ContextType "-"}}ctx{{else}}{{end}})
    32      if err != nil {
    33          return nil, {{if .Config.Extensions -}}nil,{{end -}} err
    34      }
    35      {{end}}
    36      var data {{.ResponseName}}
    37      resp := &graphql.Response{Data: &data}
    38  
    39      err = client.MakeRequest(
    40          {{if ne .Config.ContextType "-"}}ctx{{else}}nil{{end}},
    41          req,
    42          resp,
    43      )
    44  
    45      return &data, {{if .Config.Extensions -}}resp.Extensions,{{end -}} err
    46  }