Enha: model update
This commit is contained in:
@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user