query.go

 1package resolvers
 2
 3import (
 4	"context"
 5
 6	"github.com/MichaelMure/git-bug/cache"
 7	"github.com/MichaelMure/git-bug/graphql/graph"
 8	"github.com/MichaelMure/git-bug/graphql/models"
 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}