/
resolver.go
55 lines (45 loc) · 1.32 KB
/
resolver.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
49
50
51
52
53
54
55
package resolver
import (
"github.com/bickyeric/arumba/external"
"github.com/bickyeric/arumba/generated"
"github.com/bickyeric/arumba/repository"
"go.mongodb.org/mongo-driver/mongo"
)
// DefaultValue
const (
DefaultFirst = 20
DefaultOffset = 0
)
type root struct {
sourceColl, comicColl, episodeColl *mongo.Collection
sourceRepository repository.ISource
pageRepository repository.IPage
}
// New create graphql root resolver
func New(db external.MongoDatabase) generated.ResolverRoot {
return &root{
sourceColl: db.Collection("sources"),
comicColl: db.Collection("comics"),
episodeColl: db.Collection("episodes"),
sourceRepository: repository.NewSource(db),
pageRepository: repository.NewPage(db),
}
}
func (r *root) Query() generated.QueryResolver {
return &query{r}
}
func (r *root) Comic() generated.ComicResolver {
return &comicResolver{r}
}
func (r *root) Episode() generated.EpisodeResolver {
return &episodeResolver{r, r.pageRepository}
}
func (r *root) EpisodeConnection() generated.EpisodeConnectionResolver {
return &episodeConnection{r, r.episodeColl}
}
func (r *root) ComicConnection() generated.ComicConnectionResolver {
return &comicConnection{r, r.comicColl}
}
func (r *root) Mutation() generated.MutationResolver {
return &mutation{r}
}