git-bug/api/graphql/handler.go
Michael Muré 2ab6381a94
Reorganize the webUI and API code
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
2020-06-27 23:03:05 +02:00

33 lines
711 B
Go

//go:generate go run gen_graphql.go
// Package graphql contains the root GraphQL http handler
package graphql
import (
"io"
"net/http"
"github.com/99designs/gqlgen/graphql/handler"
"github.com/MichaelMure/git-bug/api/graphql/graph"
"github.com/MichaelMure/git-bug/api/graphql/resolvers"
"github.com/MichaelMure/git-bug/cache"
)
// Handler is the root GraphQL http handler
type Handler struct {
http.Handler
io.Closer
}
func NewHandler(mrc *cache.MultiRepoCache) Handler {
rootResolver := resolvers.NewRootResolver(mrc)
config := graph.Config{Resolvers: rootResolver}
h := handler.NewDefaultServer(graph.NewExecutableSchema(config))
return Handler{
Handler: h,
Closer: rootResolver,
}
}