1// Package resolvers contains the various GraphQL resolvers
2package resolvers
3
4import (
5 "github.com/MichaelMure/git-bug/cache"
6 "github.com/MichaelMure/git-bug/graphql/config"
7 "github.com/MichaelMure/git-bug/graphql/graph"
8)
9
10var _ graph.ResolverRoot = &RootResolver{}
11
12type RootResolver struct {
13 cache.MultiRepoCache
14 cfg config.Config
15}
16
17func NewRootResolver(cfg config.Config) *RootResolver {
18 return &RootResolver{
19 MultiRepoCache: cache.NewMultiRepoCache(),
20 cfg: cfg,
21 }
22}
23
24func (r RootResolver) Query() graph.QueryResolver {
25 return &rootQueryResolver{
26 cache: &r.MultiRepoCache,
27 }
28}
29
30func (r RootResolver) Mutation() graph.MutationResolver {
31 if r.cfg.ReadOnly {
32 return &readonlyMutationResolver{}
33 }
34 return &mutationResolver{
35 cache: &r.MultiRepoCache,
36 }
37}
38
39func (r RootResolver) Repository() graph.RepositoryResolver {
40 return &repoResolver{r.cfg}
41}
42
43func (RootResolver) Bug() graph.BugResolver {
44 return &bugResolver{}
45}
46
47func (RootResolver) Color() graph.ColorResolver {
48 return &colorResolver{}
49}
50
51func (r RootResolver) Comment() graph.CommentResolver {
52 return &commentResolver{}
53}
54
55func (RootResolver) Label() graph.LabelResolver {
56 return &labelResolver{}
57}
58
59func (RootResolver) Identity() graph.IdentityResolver {
60 return &identityResolver{}
61}
62
63func (RootResolver) CommentHistoryStep() graph.CommentHistoryStepResolver {
64 return &commentHistoryStepResolver{}
65}
66
67func (RootResolver) AddCommentTimelineItem() graph.AddCommentTimelineItemResolver {
68 return &addCommentTimelineItemResolver{}
69}
70
71func (RootResolver) CreateTimelineItem() graph.CreateTimelineItemResolver {
72 return &createTimelineItemResolver{}
73}
74
75func (r RootResolver) LabelChangeTimelineItem() graph.LabelChangeTimelineItemResolver {
76 return &labelChangeTimelineItem{}
77}
78
79func (r RootResolver) SetStatusTimelineItem() graph.SetStatusTimelineItemResolver {
80 return &setStatusTimelineItem{}
81}
82
83func (r RootResolver) SetTitleTimelineItem() graph.SetTitleTimelineItemResolver {
84 return &setTitleTimelineItem{}
85}
86
87func (RootResolver) CreateOperation() graph.CreateOperationResolver {
88 return &createOperationResolver{}
89}
90
91func (RootResolver) AddCommentOperation() graph.AddCommentOperationResolver {
92 return &addCommentOperationResolver{}
93}
94
95func (r RootResolver) EditCommentOperation() graph.EditCommentOperationResolver {
96 return &editCommentOperationResolver{}
97}
98
99func (RootResolver) LabelChangeOperation() graph.LabelChangeOperationResolver {
100 return &labelChangeOperationResolver{}
101}
102
103func (RootResolver) SetStatusOperation() graph.SetStatusOperationResolver {
104 return &setStatusOperationResolver{}
105}
106
107func (RootResolver) SetTitleOperation() graph.SetTitleOperationResolver {
108 return &setTitleOperationResolver{}
109}
110
111func (r RootResolver) LabelChangeResult() graph.LabelChangeResultResolver {
112 return &labelChangeResultResolver{}
113}