Enha: model update

This commit is contained in:
Grail Finder
2025-07-02 11:18:28 +03:00
parent 76bae3693a
commit b66f9c4c06
6 changed files with 153 additions and 60 deletions

View File

@ -14,9 +14,9 @@ import (
)
var (
log *slog.Logger
cfg *config.Config
memcache cache.Cache
log *slog.Logger
cfg *config.Config
// memcache cache.Cache
Notifier *broker.Broker
repo repos.AllRepos
)
@ -26,7 +26,7 @@ func init() {
Level: slog.LevelDebug,
AddSource: true,
}))
memcache = cache.MemCache
// memcache = cache.MemCache
cfg = config.LoadConfigOrDefault("")
Notifier = broker.Notifier
cache.MemCache.StartBackupRoutine(15 * time.Second) // Reduced backup interval
@ -91,17 +91,25 @@ func HandleExit(w http.ResponseWriter, r *http.Request) {
creatorLeft = true
}
exitedRoom := fi.ExitRoom()
if err := saveRoom(exitedRoom); err != nil {
abortWithError(w, err.Error())
return
}
// if err := saveRoom(exitedRoom); err != nil {
// abortWithError(w, err.Error())
// return
// }
if creatorLeft {
removeRoom(exitedRoom.ID)
if err := repo.DeleteRoomByID(r.Context(), exitedRoom.ID); err != nil {
log.Error("failed to remove room", "error", err)
}
// removeRoom(exitedRoom.ID)
// TODO: notify users if creator left
// and throw them away
notify(models.NotifyRoomListUpdate, "")
}
if err := saveState(fi.State.Username, fi.State); err != nil {
// scary to update the whole room
if err := repo.UpdateRoom(r.Context(), exitedRoom); err != nil {
abortWithError(w, err.Error())
return
}
if err := repo.PlayerExitRoom(fi.State.Username); err != nil {
abortWithError(w, err.Error())
return
}