// Code generated by github.com/99designs/gqlgen, DO NOT EDIT. package {{ .PackageName }} import ( %%%IMPORTS%%% {{ reserveImport "context" }} {{ reserveImport "fmt" }} {{ reserveImport "io" }} {{ reserveImport "strconv" }} {{ reserveImport "time" }} {{ reserveImport "sync" }} {{ reserveImport "errors" }} {{ reserveImport "bytes" }} {{ reserveImport "github.com/vektah/gqlparser" }} {{ reserveImport "github.com/vektah/gqlparser/ast" }} {{ reserveImport "github.com/99designs/gqlgen/graphql" }} {{ reserveImport "github.com/99designs/gqlgen/graphql/introspection" }} ) {{ range $model := .Models }} {{with .Description}} {{.|prefixLines "// "}} {{end}} {{- if .IsInterface }} type {{.GoType}} interface { Is{{.GoType}}() } {{- else }} type {{.GoType}} struct { {{- range $field := .Fields }} {{- with .Description}} {{.|prefixLines "// "}} {{- end}} {{- if $field.GoFieldName }} {{ $field.GoFieldName }} {{$field.Signature}} `json:"{{$field.GQLName}}"` {{- else }} {{ $field.GoFKName }} {{$field.GoFKType}} {{- end }} {{- end }} } {{- range $iface := .Implements }} func ({{$model.GoType}}) Is{{$iface.GoType}}() {} {{- end }} {{- end }} {{- end}} {{ range $enum := .Enums }} {{with .Description}}{{.|prefixLines "// "}} {{end}} 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 }}