From 3eb54cffff59a1233e974a860ea5f2f09ff161f1 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Wed, 7 May 2025 06:06:21 +0300 Subject: [PATCH] Enha: load state instead of room --- handlers/auth.go | 1 + handlers/elements.go | 20 +++++++++++++------- handlers/middleware.go | 1 + 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/handlers/auth.go b/handlers/auth.go index 8dca6f5..d3bf939 100644 --- a/handlers/auth.go +++ b/handlers/auth.go @@ -80,6 +80,7 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) { // } // state := models.InitState(cleanName) state := models.MakeTestState() + state.Username = cleanName // save state to cache saveState(cleanName, state) tmpl.ExecuteTemplate(w, "base", state) diff --git a/handlers/elements.go b/handlers/elements.go index cc0b60b..406b3a0 100644 --- a/handlers/elements.go +++ b/handlers/elements.go @@ -29,21 +29,27 @@ func HandleHideCreateForm(w http.ResponseWriter, r *http.Request) { func HandleShowColor(w http.ResponseWriter, r *http.Request) { word := r.URL.Query().Get("word") ctx := r.Context() - session, ok := ctx.Value(models.CtxSessionKey).(models.Session) + session, ok := ctx.Value(models.CtxSessionKey).(*models.Session) if !ok { // trying to get color without a session -> error abortWithError(w, "session not found") return } - // get room by room-id - room, err := getRoomByID(session.CurrentRoom) + // // get room by room-id + // room, err := getRoomByID(session.CurrentRoom) + // if err != nil { + // log.Error("failed to get room", "error", err, "session", session) + // abortWithError(w, "failed to get room") + // return + // } + // log.Debug("got room", "room", room) + state, err := loadState(session.Username) if err != nil { - log.Error("failed to get room", "error", err, "session", session) - abortWithError(w, "failed to get room") + abortWithError(w, err.Error()) return } - log.Debug("got room", "room", room) - // update room score + log.Debug("got state", "state", state) + // TODO: update room score color, exists := roundWords[word] log.Debug("got show-color request", "word", word, "color", color) if !exists { diff --git a/handlers/middleware.go b/handlers/middleware.go index 02dbe8f..20cbc65 100644 --- a/handlers/middleware.go +++ b/handlers/middleware.go @@ -77,6 +77,7 @@ func GetSession(next http.Handler) http.Handler { return } userSession, err := cacheGetSession(sessionToken) + log.Debug("userSession from cache", "us", userSession) if err != nil { msg := "auth failed; session does not exists" err = errors.New(msg)