Player cache and project structure refactor.

This commit is contained in:
MaxJa4
2024-01-21 18:02:27 +01:00
parent 4aae0896aa
commit f2573f2273
10 changed files with 73 additions and 60 deletions

View File

@@ -5,7 +5,6 @@ import (
"InfantrySkillCalculator/utils"
"fmt"
"github.com/gin-gonic/gin"
"internal/cache"
"log"
"net/http"
)
@@ -30,7 +29,7 @@ func GetCacheByPlayerID(c *gin.Context) {
return
}
val, err := cache.GetScore(playerId, game.Tag)
val, err := models.PlayerCache.GetScore(playerId, game.Tag)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "Record not found!"})
} else {
@@ -52,7 +51,7 @@ func AddCache(c *gin.Context) {
return
}
err := cache.SetScore(input.PlayerID, input.GameTag, input.Score)
err := models.PlayerCache.SetScore(input.PlayerID, input.GameTag, input.Score)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "Cache update failed! Error: " + err.Error()})
return
@@ -67,7 +66,7 @@ func UpdateCacheByPlayerID(c *gin.Context) {
gameTag := c.Request.URL.Query().Get("game")
score := utils.StringToFloat(c.PostForm("score"))
err := cache.SetScore(playerID, gameTag, score)
err := models.PlayerCache.SetScore(playerID, gameTag, score)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "Cache update failed! Error: " + err.Error()})
} else {
@@ -80,7 +79,7 @@ func DeleteCacheByPlayerID(c *gin.Context) {
playerID := utils.StringToUint(c.Param("id"))
gameTag := c.Request.URL.Query().Get("game")
if err := cache.DeleteScore(playerID, gameTag); err != nil {
if err := models.PlayerCache.DeleteScore(playerID, gameTag); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
} else {
c.JSON(http.StatusOK, nil)
@@ -89,7 +88,7 @@ func DeleteCacheByPlayerID(c *gin.Context) {
// DeleteAllCaches DELETE /cache
func DeleteAllCaches(c *gin.Context) {
if err := cache.PurgeCache(); err != nil {
if err := models.PlayerCache.PurgeCache(); err != nil {
c.String(http.StatusBadRequest, err.Error())
} else {
c.String(http.StatusOK, "Purged all caches!")
@@ -116,11 +115,11 @@ func GetScoreByPlayerID(c *gin.Context) {
return
}
score, err := cache.GetScore(player.ID, game.Tag)
score, err := models.PlayerCache.GetScore(player.ID, game.Tag)
if err != nil || score == -1 {
score = utils.CalcPlayerScore(player.Name, game.Tag)
if score == score && score != -1 { // not NaN
if err := cache.SetScore(player.ID, game.Tag, score); err != nil {
if err := models.PlayerCache.SetScore(player.ID, game.Tag, score); err != nil {
log.Fatal(err)
}
}

View File

@@ -8,7 +8,6 @@ import (
"gorm.io/gorm"
"gorm.io/gorm/clause"
"html/template"
"internal/cache"
"log"
"net/http"
)
@@ -51,7 +50,12 @@ func GetPlayersByClanHTML(c *gin.Context) {
return
}
scores, err := cache.GetScores(players, game.Tag)
var playerIDs []uint
for _, player := range players {
playerIDs = append(playerIDs, player.ID)
}
scores, err := models.PlayerCache.GetScores(playerIDs, game.Tag)
if err != nil {
c.String(http.StatusBadRequest, "")
log.Fatal(err)