1package resolvers
2
3import (
4 "context"
5
6 "github.com/MichaelMure/git-bug/api/graphql/graph"
7 "github.com/MichaelMure/git-bug/api/graphql/models"
8 "github.com/MichaelMure/git-bug/cache"
9)
10
11var _ graph.QueryResolver = &rootQueryResolver{}
12
13type rootQueryResolver struct {
14 cache *cache.MultiRepoCache
15}
16
17func (r rootQueryResolver) DefaultRepository(_ context.Context) (*models.Repository, error) {
18 repo, err := r.cache.DefaultRepo()
19
20 if err != nil {
21 return nil, err
22 }
23
24 return &models.Repository{
25 Cache: r.cache,
26 Repo: repo,
27 }, nil
28}
29
30func (r rootQueryResolver) Repository(_ context.Context, ref *string) (*models.Repository, error) {
31 var repo *cache.RepoCache
32 var err error
33
34 if ref == nil {
35 repo, err = r.cache.DefaultRepo()
36 } else {
37 repo, err = r.cache.ResolveRepo(*ref)
38 }
39
40 if err != nil {
41 return nil, err
42 }
43
44 return &models.Repository{
45 Cache: r.cache,
46 Repo: repo,
47 }, nil
48}