Started work on new layered setup, making a huge mess.
the build was successful

This commit is contained in:
2019-06-09 12:37:17 +02:00
parent 6fa9f64f2d
commit cdf4e6f667
33 changed files with 540 additions and 210 deletions
+13 -4
View File
@@ -8,14 +8,17 @@ import (
"runtime/debug"
"strings"
"git.aiterp.net/rpdata/api/database"
"git.aiterp.net/rpdata/api/graph2"
"git.aiterp.net/rpdata/api/internal/auth"
"git.aiterp.net/rpdata/api/internal/config"
"git.aiterp.net/rpdata/api/internal/instrumentation"
"git.aiterp.net/rpdata/api/internal/loader"
"git.aiterp.net/rpdata/api/internal/store"
"git.aiterp.net/rpdata/api/models"
"git.aiterp.net/rpdata/api/models/changes"
"git.aiterp.net/rpdata/api/models/logs"
"git.aiterp.net/rpdata/api/services"
"github.com/99designs/gqlgen/handler"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
@@ -26,10 +29,17 @@ func main() {
log.Fatalln("Failed to init store:", err)
}
repos, stopFn, err := database.Init(config.Global().Database)
if err != nil {
log.Fatalln("Failed to init db:", err)
}
defer stopFn()
services := services.NewBundle(repos)
instrumentation.Register()
http.Handle("/", handler.Playground("RPData API", "/graphql"))
http.Handle("/graphql", queryHandler())
http.Handle("/graphql", queryHandler(services))
http.Handle("/metrics", promhttp.Handler())
@@ -77,9 +87,9 @@ func logListedChanges() {
log.Println("Change subscription closed.")
}
func queryHandler() http.HandlerFunc {
func queryHandler(services *services.Bundle) http.HandlerFunc {
handler := handler.GraphQL(
graph2.New(),
graph2.New(services),
handler.RecoverFunc(func(ctx context.Context, err interface{}) error {
log.Println(err)
log.Println(string(debug.Stack()))
@@ -90,7 +100,6 @@ func queryHandler() http.HandlerFunc {
handler.RequestMiddleware(instrumentation.RequestMiddleware()),
handler.ResolverMiddleware(instrumentation.ResolverMiddleware()),
)
return func(w http.ResponseWriter, r *http.Request) {
l := loader.New()
r = r.WithContext(l.ToContext(r.Context()))