aboutsummaryrefslogtreecommitdiffstats
path: root/graphql/handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'graphql/handler.go')
-rw-r--r--graphql/handler.go28
1 files changed, 17 insertions, 11 deletions
diff --git a/graphql/handler.go b/graphql/handler.go
index b49ca56b..89ef3801 100644
--- a/graphql/handler.go
+++ b/graphql/handler.go
@@ -4,18 +4,19 @@ import (
"context"
"net/http"
+ "github.com/MichaelMure/git-bug/cache"
"github.com/MichaelMure/git-bug/repository"
- "github.com/graphql-go/handler"
+ graphqlHandler "github.com/graphql-go/handler"
)
type Handler struct {
- Handler *handler.Handler
- Repo repository.Repo
+ handler *graphqlHandler.Handler
+ cache cache.Cache
}
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
- ctx := context.WithValue(r.Context(), "repo", h.Repo)
- h.Handler.ContextHandler(ctx, w, r)
+ ctx := context.WithValue(r.Context(), "cache", h.cache)
+ h.handler.ContextHandler(ctx, w, r)
}
func NewHandler(repo repository.Repo) (*Handler, error) {
@@ -25,12 +26,17 @@ func NewHandler(repo repository.Repo) (*Handler, error) {
return nil, err
}
+ h := graphqlHandler.New(&graphqlHandler.Config{
+ Schema: &schema,
+ Pretty: true,
+ GraphiQL: true,
+ })
+
+ c := cache.NewDefaultCache()
+ c.RegisterDefaultRepository(repo)
+
return &Handler{
- Handler: handler.New(&handler.Config{
- Schema: &schema,
- Pretty: true,
- GraphiQL: true,
- }),
- Repo: repo,
+ handler: h,
+ cache: c,
}, nil
}