-
Notifications
You must be signed in to change notification settings - Fork 0
/
resolver-core.go
executable file
·48 lines (43 loc) · 2.17 KB
/
resolver-core.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package templates
var ResolverCore = `//go:generate go run github.com/99designs/gqlgen generate
package gen
import (
"context"
)
type ResolutionHandlers struct {
OnEvent func(ctx context.Context, r *GeneratedResolver, e *Event) error
{{range $obj := .Model.ObjectEntities}}
Create{{$obj.Name}} func (ctx context.Context, r *GeneratedResolver, input map[string]interface{}, authType bool) (item *{{$obj.Name}}, err error)
Update{{$obj.Name}} func(ctx context.Context, r *GeneratedResolver, id string, input map[string]interface{}, authType bool) (item *{{$obj.Name}}, err error)
Delete{{$obj.PluralName}} func (ctx context.Context, r *GeneratedResolver, id []string, unscoped *bool, authType bool) (bool, error)
Recovery{{$obj.PluralName}} func (ctx context.Context, r *GeneratedResolver, id []string, authType bool) (bool, error)
Query{{$obj.Name}} func (ctx context.Context, r *GeneratedResolver, opts Query{{$obj.Name}}HandlerOptions, authType bool) (*{{$obj.Name}}, error)
Query{{$obj.PluralName}} func (ctx context.Context, r *GeneratedResolver, opts Query{{$obj.PluralName}}HandlerOptions, authType bool) (*{{$obj.Name}}ResultType, error)
{{range $rel := $obj.Relationships}}
{{$obj.Name}}{{$rel.MethodName}} func (ctx context.Context,r *GeneratedResolver, obj *{{$obj.Name}}, authType bool) (res {{$rel.ReturnType}}, err error)
{{end}}
{{end}}
}
func DefaultResolutionHandlers() ResolutionHandlers {
handlers := ResolutionHandlers{
OnEvent: func(ctx context.Context, r *GeneratedResolver, e *Event) error { return nil },
{{range $obj := .Model.ObjectEntities}}
Create{{$obj.Name}}: Create{{$obj.Name}}Handler,
Update{{$obj.Name}}: Update{{$obj.Name}}Handler,
Delete{{$obj.PluralName}}: Delete{{$obj.PluralName}}Handler,
Recovery{{$obj.PluralName}}: Recovery{{$obj.PluralName}}Handler,
Query{{$obj.Name}}: Query{{$obj.Name}}Handler,
Query{{$obj.PluralName}}: Query{{$obj.PluralName}}Handler,
{{range $rel := $obj.Relationships}}
{{$obj.Name}}{{$rel.MethodName}}: {{$obj.Name}}{{$rel.MethodName}}Handler,
{{end}}
{{end}}
}
return handlers
}
type GeneratedResolver struct {
Handlers ResolutionHandlers
DB *DB
EventController *EventController
}
`