blob: e35ec48cd060a92c95c653459163efe7f7b49f64 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
//go:generate go run github.com/99designs/gqlgen generate
// Package graphql contains the root GraphQL http handler
package graphql
import (
"io"
"net/http"
"github.com/99designs/gqlgen/graphql/handler"
"github.com/git-bug/git-bug/api/graphql/graph"
"github.com/git-bug/git-bug/api/graphql/resolvers"
"github.com/git-bug/git-bug/cache"
)
// Handler is the root GraphQL http handler
type Handler struct {
http.Handler
io.Closer
}
func NewHandler(mrc *cache.MultiRepoCache, errorOut io.Writer) Handler {
rootResolver := resolvers.NewRootResolver(mrc)
config := graph.Config{Resolvers: rootResolver}
h := handler.NewDefaultServer(graph.NewExecutableSchema(config))
if errorOut != nil {
h.Use(&Tracer{Out: errorOut})
}
return Handler{
Handler: h,
Closer: rootResolver,
}
}
|