Feat: stats [WIP]

This commit is contained in:
Grail Finder
2025-07-10 19:55:46 +03:00
parent ff6fed073e
commit 8392a764a2
6 changed files with 134 additions and 2 deletions

View File

@ -113,3 +113,42 @@ func HandleExit(w http.ResponseWriter, r *http.Request) {
log.Error("failed to exec templ;", "error", err, "templ", "base")
}
}
func HandleStats(w http.ResponseWriter, r *http.Request) {
log.Debug("got stats call")
tmpl, err := template.ParseGlob("components/*.html")
if err != nil {
abortWithError(w, err.Error())
return
}
stats, err := repo.GetAllPlayerStats(r.Context())
if err != nil {
log.Error("failed to get all player stats", "error", err)
abortWithError(w, "failed to retrieve player stats")
return
}
fi, err := getFullInfoByCtx(r.Context())
if err != nil {
log.Error("failed to fetch fi", "error", err)
}
// 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
} else {
fi.Room.GuesserView()
}
}
if fi != nil && fi.Room == nil {
rooms, err := repo.RoomList(r.Context())
if err != nil {
log.Error("failed to list rooms;", "error", err)
}
fi.List = rooms
}
fi.List = nil
if err := tmpl.ExecuteTemplate(w, "stats", stats); err != nil {
log.Error("failed to exec templ;", "error", err, "templ", "base")
}
}