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
	 Grail Finder
					Grail Finder