From ca4823e80bfa127b97a27594f3b59eb23bff7f70 Mon Sep 17 00:00:00 2001 From: Branden J Brown Date: Fri, 2 Feb 2024 13:03:05 -0600 Subject: [PATCH] get player id with middleware, not session --- serve/session.go | 6 +++--- server.go | 19 ++++--------------- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/serve/session.go b/serve/session.go index abc1f25..92d1b23 100644 --- a/serve/session.go +++ b/serve/session.go @@ -61,7 +61,7 @@ func WithSession(sessions player.RowQuerier) func(http.Handler) http.Handler { } } -// Session returns the session ID set by WithSession in the request context. -func Session(ctx context.Context) player.Session { - return value[player.Session](ctx) +// ReqPlayer returns the session ID set by WithSession in the request context. +func ReqPlayer(ctx context.Context) player.ID { + return value[player.ID](ctx) } diff --git a/server.go b/server.go index 96d8f6b..62270f9 100644 --- a/server.go +++ b/server.go @@ -135,31 +135,20 @@ func (s *Server) Login(w http.ResponseWriter, r *http.Request) { } func (s *Server) Me(w http.ResponseWriter, r *http.Request) { - id := serve.Session(r.Context()) - if id == (player.Session{}) { + id := serve.ReqPlayer(r.Context()) + if id == (player.ID{}) { panic("missing player ID") } - p, err := player.FromSession(r.Context(), s.sessions, id, time.Now()) - if err != nil { - panic("session with no player id: " + err.Error()) - } q := struct { ID player.ID `json:"id"` - }{p} + }{id} json.NewEncoder(w).Encode(q) } // Queue connects players to games. The connection immediately upgrades. // This handler MUST be wrapped in [serve.WithPlayerID]. func (s *Server) Queue(w http.ResponseWriter, r *http.Request) { - id := serve.Session(r.Context()) - if id == (player.Session{}) { - panic("missing player ID") - } - p, err := player.FromSession(r.Context(), s.sessions, id, time.Now()) - if p == (player.ID{}) { - panic("session with no player id: " + err.Error()) - } + p := serve.ReqPlayer(r.Context()) person, err := s.accept(w, r, p) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest)