shotgun/main.go

44 lines
904 B
Go

package main
import (
"context"
"net/http"
"github.com/go-chi/chi/v5"
"gitlab.com/zephyrtronium/sq"
"git.sunturtle.xyz/studio/shotgun/lobby"
"git.sunturtle.xyz/studio/shotgun/player"
"git.sunturtle.xyz/studio/shotgun/serve"
_ "modernc.org/sqlite"
)
func main() {
sessiondb, err := sq.Open("sqlite", ":memory:")
if err != nil {
panic(err)
}
sessions, err := sessiondb.Conn(context.Background())
if err != nil {
panic(err)
}
if err := player.InitSessions(context.Background(), sessions); err != nil {
panic(err)
}
if err := player.InitUsers(context.Background(), sessions); err != nil {
panic(err)
}
s := Server{
l: lobby.New(),
creds: sessions,
sessions: sessions,
}
r := chi.NewRouter()
r.Post("/user/register", s.Register)
r.Post("/user/login", s.Login)
r.With(serve.WithPlayerID(sessions)).Get("/queue", s.Queue)
http.ListenAndServe(":8080", r)
}