mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-16 19:34:41 +03:00
2ab6381a94
Included in the changes: - create a new /api root package to hold all API code, migrate /graphql in there - git API handlers all use the cache instead of the repo directly - git API handlers are now tested - git API handlers now require a "repo" mux parameter - lots of untangling of API/handlers/middleware - less code in commands/webui.go
49 lines
904 B
Go
49 lines
904 B
Go
package resolvers
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/MichaelMure/git-bug/api/graphql/graph"
|
|
"github.com/MichaelMure/git-bug/api/graphql/models"
|
|
"github.com/MichaelMure/git-bug/cache"
|
|
)
|
|
|
|
var _ graph.QueryResolver = &rootQueryResolver{}
|
|
|
|
type rootQueryResolver struct {
|
|
cache *cache.MultiRepoCache
|
|
}
|
|
|
|
func (r rootQueryResolver) DefaultRepository(_ context.Context) (*models.Repository, error) {
|
|
repo, err := r.cache.DefaultRepo()
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &models.Repository{
|
|
Cache: r.cache,
|
|
Repo: repo,
|
|
}, nil
|
|
}
|
|
|
|
func (r rootQueryResolver) Repository(_ context.Context, ref *string) (*models.Repository, error) {
|
|
var repo *cache.RepoCache
|
|
var err error
|
|
|
|
if ref == nil {
|
|
repo, err = r.cache.DefaultRepo()
|
|
} else {
|
|
repo, err = r.cache.ResolveRepo(*ref)
|
|
}
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &models.Repository{
|
|
Cache: r.cache,
|
|
Repo: repo,
|
|
}, nil
|
|
}
|