refactor: integrate chat persistence into Room
All checks were successful
CI / Deploy / test (pull_request) Successful in 14s
CI / Deploy / lint (pull_request) Successful in 25s
CI / Deploy / deploy (pull_request) Has been skipped

Move SaveMessage/LoadMessages logic into Room as private methods.
NewPersistentRoom auto-loads history and auto-saves on Send, removing
the need for handlers to coordinate persistence separately.
This commit is contained in:
Ryan Hamamura
2026-03-02 21:25:03 -10:00
parent 6d43bdea16
commit 2cfd42b606
4 changed files with 71 additions and 61 deletions

View File

@@ -126,7 +126,7 @@ func HandleSnakeEvents(snakeStore *snake.SnakeStore, nc *nats.Conn, sm *scs.Sess
var room *chat.Room
if sg.Mode == snake.ModeMultiplayer {
room = chat.NewRoom(nc, "snake.chat."+gameID, nil)
room = chat.NewRoom(nc, "snake.chat."+gameID)
chatCh, chatSub, err = room.Subscribe()
if err != nil {
return
@@ -247,7 +247,7 @@ func HandleSendChat(snakeStore *snake.SnakeStore, nc *nats.Conn, sm *scs.Session
Message: signals.ChatMsg,
}
room := chat.NewRoom(nc, "snake.chat."+gameID, nil)
room := chat.NewRoom(nc, "snake.chat."+gameID)
room.Send(msg)
sse := datastar.NewSSE(w, r)