diff options
author | Quentin Gliech <quentingliech@gmail.com> | 2018-07-20 00:25:30 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2018-07-20 14:32:23 +0200 |
commit | 1dd5118eebe0e993d55ae5433cb2dcfd2764bf4f (patch) | |
tree | 67f9b2e6bb3eb7cbc870436e34e7e57a708008e5 /graphql/handler.go | |
parent | 59e6ae872cad5683a9f1887cbef382d0e76ecc61 (diff) | |
download | git-bug-1dd5118eebe0e993d55ae5433cb2dcfd2764bf4f.tar.gz |
graphql: Actually get the bugs from the repo
Diffstat (limited to 'graphql/handler.go')
-rw-r--r-- | graphql/handler.go | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/graphql/handler.go b/graphql/handler.go index 7dbb7a0f..b49ca56b 100644 --- a/graphql/handler.go +++ b/graphql/handler.go @@ -1,17 +1,36 @@ package graphql -import "github.com/graphql-go/handler" +import ( + "context" + "net/http" -func NewHandler() (*handler.Handler, error) { - schema, err := newGraphqlSchema() + "github.com/MichaelMure/git-bug/repository" + "github.com/graphql-go/handler" +) + +type Handler struct { + Handler *handler.Handler + Repo repository.Repo +} + +func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + ctx := context.WithValue(r.Context(), "repo", h.Repo) + h.Handler.ContextHandler(ctx, w, r) +} + +func NewHandler(repo repository.Repo) (*Handler, error) { + schema, err := graphqlSchema() if err != nil { return nil, err } - return handler.New(&handler.Config{ - Schema: &schema, - Pretty: true, - GraphiQL: true, - }), nil + return &Handler{ + Handler: handler.New(&handler.Config{ + Schema: &schema, + Pretty: true, + GraphiQL: true, + }), + Repo: repo, + }, nil } |