mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-15 02:01:43 +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
33 lines
711 B
Go
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,
|
|
}
|
|
}
|