1// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.
2
3package {{ .PackageName }}
4
5import (
6{{- range $import := .Imports }}
7 {{- $import.Write }}
8{{ end }}
9)
10
11{{ range $model := .Models }}
12 {{with .Description}} {{.|prefixLines "// "}} {{end}}
13 {{- if .IsInterface }}
14 type {{.GoType}} interface {}
15 {{- else }}
16 type {{.GoType}} struct {
17 {{- range $field := .Fields }}
18 {{- with .Description}}
19 {{.|prefixLines "// "}}
20 {{- end}}
21 {{- if $field.GoFieldName }}
22 {{ $field.GoFieldName }} {{$field.Signature}} `json:"{{$field.GQLName}}"`
23 {{- else }}
24 {{ $field.GoFKName }} {{$field.GoFKType}}
25 {{- end }}
26 {{- end }}
27 }
28 {{- end }}
29{{- end}}
30
31{{ range $enum := .Enums }}
32 {{with .Description}}{{.|prefixLines "// "}} {{end}}
33 type {{.GoType}} string
34 const (
35 {{- range $value := .Values}}
36 {{- with .Description}}
37 {{.|prefixLines "// "}}
38 {{- end}}
39 {{$enum.GoType}}{{ .Name|toCamel }} {{$enum.GoType}} = {{.Name|quote}}
40 {{- end }}
41 )
42
43 func (e {{.GoType}}) IsValid() bool {
44 switch e {
45 case {{ range $index, $element := .Values}}{{if $index}},{{end}}{{ $enum.GoType }}{{ $element.Name|toCamel }}{{end}}:
46 return true
47 }
48 return false
49 }
50
51 func (e {{.GoType}}) String() string {
52 return string(e)
53 }
54
55 func (e *{{.GoType}}) UnmarshalGQL(v interface{}) error {
56 str, ok := v.(string)
57 if !ok {
58 return fmt.Errorf("enums must be strings")
59 }
60
61 *e = {{.GoType}}(str)
62 if !e.IsValid() {
63 return fmt.Errorf("%s is not a valid {{.GQLType}}", str)
64 }
65 return nil
66 }
67
68 func (e {{.GoType}}) MarshalGQL(w io.Writer) {
69 fmt.Fprint(w, strconv.Quote(e.String()))
70 }
71
72{{- end }}