From 873c35ab085d8eb24746eac4672c8e433f1edfd7 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Thu, 3 Jul 2025 14:11:52 +0300 Subject: [PATCH] Enha: roomid confusion --- handlers/actions.go | 6 ++++-- handlers/handlers.go | 3 ++- models/main.go | 2 +- repos/players.go | 3 +++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/handlers/actions.go b/handlers/actions.go index 2c52ebf..26fae08 100644 --- a/handlers/actions.go +++ b/handlers/actions.go @@ -135,11 +135,13 @@ func getFullInfoByCtx(ctx context.Context) (*models.FullInfo, error) { return nil, err } resp.State = state - if state.RoomID == nil { + if state.RoomID == nil || *state.RoomID == "" { + log.Debug("returning state without room", "username", state.Username) return resp, nil } // room, err := getRoomByID(state.RoomID) - room, err := repo.RoomGetByID(ctx, *state.RoomID) + room, err := repo.RoomGetExtended(ctx, *state.RoomID) + // room, err := repo.RoomGetByID(ctx, *state.RoomID) if err != nil { // room was deleted; remove it from player; log.Warn("failed to find room despite knowing room_id;", diff --git a/handlers/handlers.go b/handlers/handlers.go index 37dcab1..ba5e93b 100644 --- a/handlers/handlers.go +++ b/handlers/handlers.go @@ -52,7 +52,8 @@ func HandleHome(w http.ResponseWriter, r *http.Request) { if err != nil { log.Error("failed to fetch fi", "error", err) } - if fi != nil && fi.Room != nil && fi.State != nil { + // there must be a better way + if fi != nil && fi.Room != nil && fi.Room.ID != "" && fi.State != nil { fi.Room.UpdateCounter() if fi.State.Role == "mime" { fi.Room.MimeView() // there must be a better way diff --git a/models/main.go b/models/main.go index ee335f4..14e639e 100644 --- a/models/main.go +++ b/models/main.go @@ -380,7 +380,7 @@ type WordCard struct { Word string `json:"word" db:"word"` Color WordColor `json:"color" db:"color"` Revealed bool `json:"revealed" db:"revealed"` - Mime bool `json:"mime" db:"mime"` // user who sees that card is mime + Mime bool `json:"mime" db:"mime_view"` // user who sees that card is mime Mark []CardMark `json:"marks" db:"-"` } diff --git a/repos/players.go b/repos/players.go index c8e6581..295fbfa 100644 --- a/repos/players.go +++ b/repos/players.go @@ -33,6 +33,9 @@ func (p *RepoProvider) PlayerGetByName(ctx context.Context, username string) (*m if err != nil { return nil, err } + if player.RoomID != nil && *player.RoomID == "" { + player.RoomID = nil + } return &player, nil }