Feat: stats [WIP]
This commit is contained in:
@ -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")
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user