package main import ( "log" "net/http" "git.aiterp.net/rpdata/api/internal/session" "git.aiterp.net/rpdata/api/internal/store" "git.aiterp.net/rpdata/api/loader" logModel "git.aiterp.net/rpdata/api/model/log" "git.aiterp.net/rpdata/api/resolver" "git.aiterp.net/rpdata/api/schema" graphql "github.com/graph-gophers/graphql-go" "github.com/graph-gophers/graphql-go/relay" ) func main() { err := store.Init() if err != nil { log.Fatalln("Failed to init store:", err) } n, err := logModel.UpdateAllCharacters() if err != nil { log.Println("Charcter updated stopped:", err) } log.Println("Updated characters on", n, "logs") schema, err := graphql.ParseSchema(schema.String(), &resolver.RootResolver{}, graphql.MaxParallelism(4)) if err != nil { log.Fatalln("Failed to parse schema:", err) } http.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { http.Error(w, "method not allowed", http.StatusMethodNotAllowed) return } w.Write(page) })) relayHandler := &relay.Handler{Schema: schema} http.HandleFunc("/graphql", func(w http.ResponseWriter, r *http.Request) { r = session.Load(w, r) l := loader.New() r = r.WithContext(l.ToContext(r.Context())) relayHandler.ServeHTTP(w, r) }) log.Fatal(http.ListenAndServe(":17000", nil)) } var page = []byte(`