aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/vektah/gqlgen/codegen/templates/models.gotpl
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-08-14 14:48:41 +0200
committerMichael Muré <batolettre@gmail.com>2018-08-14 14:48:41 +0200
commit5c568a362b73cf163b06bc7371982f9a7ceaaf29 (patch)
tree755b61f969913b5290f3d56f4cfba4070b8155bc /vendor/github.com/vektah/gqlgen/codegen/templates/models.gotpl
parentef0d8fa108fbdef24997a84a3c6ecbf21cbc0a9e (diff)
downloadgit-bug-5c568a362b73cf163b06bc7371982f9a7ceaaf29.tar.gz
gqlgen: add a small program to go:generate the code
Diffstat (limited to 'vendor/github.com/vektah/gqlgen/codegen/templates/models.gotpl')
-rw-r--r--vendor/github.com/vektah/gqlgen/codegen/templates/models.gotpl65
1 files changed, 65 insertions, 0 deletions
diff --git a/vendor/github.com/vektah/gqlgen/codegen/templates/models.gotpl b/vendor/github.com/vektah/gqlgen/codegen/templates/models.gotpl
new file mode 100644
index 00000000..e66266a5
--- /dev/null
+++ b/vendor/github.com/vektah/gqlgen/codegen/templates/models.gotpl
@@ -0,0 +1,65 @@
+// 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 }}