// Code generated by github.com/vektah/gqlgen, DO NOT EDIT. package {{ .PackageName }} import ( {{- range $import := .Imports }} {{- $import.Write }} {{ end }} ) {{ range $model := .Models }} {{- if .IsInterface }} type {{.GoType}} interface {} {{- else }} type {{.GoType}} struct { {{- range $field := .Fields }} {{- if $field.GoVarName }} {{ $field.GoVarName }} {{$field.Signature}} `json:"{{$field.GQLName}}"` {{- else }} {{ $field.GoFKName }} {{$field.GoFKType}} {{- end }} {{- end }} } {{- end }} {{- end}} {{ range $enum := .Enums }} type {{.GoType}} string const ( {{ range $value := .Values -}} {{with .Description}} {{.|prefixLines "// "}} {{end}} {{$enum.GoType}}{{ .Name|toCamel }} {{$enum.GoType}} = {{.Name|quote}} {{- end }} ) func (e {{.GoType}}) IsValid() bool { switch e { case {{ range $index, $element := .Values}}{{if $index}},{{end}}{{ $enum.GoType }}{{ $element.Name|toCamel }}{{end}}: return true } return false } func (e {{.GoType}}) String() string { return string(e) } func (e *{{.GoType}}) UnmarshalGQL(v interface{}) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") } *e = {{.GoType}}(str) if !e.IsValid() { return fmt.Errorf("%s is not a valid {{.GQLType}}", str) } return nil } func (e {{.GoType}}) MarshalGQL(w io.Writer) { fmt.Fprint(w, strconv.Quote(e.String())) } {{- end }}