Optimizations. User-Role handling in templates and routes.

This commit is contained in:
MaxJa4
2024-01-21 17:24:29 +01:00
parent 8edbbb4347
commit 4aae0896aa
14 changed files with 221 additions and 119 deletions

View File

@@ -7,10 +7,10 @@ import (
"github.com/gin-gonic/gin"
"gorm.io/gorm"
"gorm.io/gorm/clause"
"html/template"
"internal/cache"
"log"
"net/http"
"os"
)
type AddPlayerInput struct {
@@ -44,14 +44,6 @@ func GetPlayersByClanHTML(c *gin.Context) {
return
}
file, err := os.ReadFile("./templates/player_list_item.html")
if err != nil {
c.String(http.StatusBadRequest, "")
log.Fatal(err)
return
}
playerItem := string(file)
game, err := GetActiveGame(c)
if err != nil {
c.String(http.StatusBadRequest, "")
@@ -59,19 +51,37 @@ func GetPlayersByClanHTML(c *gin.Context) {
return
}
var htmlOptions string
for _, player := range players {
var score string
if val, err := cache.GetScore(player.ID, game.Tag); err != nil || val == -1.0 {
score = "<i class=\"bi bi-dash me-2\" style=\"margin-left:0.7rem;\"></i>"
} else {
score = fmt.Sprintf("%.2f", val)
}
htmlOptions += fmt.Sprintf(playerItem, player.Name, score, utils.UintToString(player.ID)+"?game_tag="+game.Tag, player.ID, player.ID)
scores, err := cache.GetScores(players, game.Tag)
if err != nil {
c.String(http.StatusBadRequest, "")
log.Fatal(err)
}
c.Header("Content-Type", "text/html")
c.String(http.StatusOK, htmlOptions)
userRole := GetUserRoleByCtx(c)
var data []map[string]interface{}
for i, player := range players {
score := scores[i]
var scoreStr string
if score == -1.0 {
scoreStr = "<i class=\"bi bi-dash me-2\" style=\"margin-left:0.7rem;\"></i>"
} else {
scoreStr = fmt.Sprintf("%.2f", score)
}
data = append(data, map[string]interface{}{
"PlayerName": player.Name,
"Score": template.HTML(scoreStr),
"PlayerID": player.ID,
"UserRole": userRole,
})
}
err = utils.PlayerItemTemplate.Execute(c.Writer, data)
if err != nil {
log.Fatal(err)
}
}
// AddPlayer POST /player