Files
InfantrySkillCalculator/controllers/metrics_controller.go

52 lines
1.0 KiB
Go

package controllers
import (
"InfantrySkillCalculator/models"
"InfantrySkillCalculator/utils"
"encoding/json"
"io"
"os"
)
var gameMetrics models.GameMetrics
func LoadMetrics() {
f, err := os.Open("./config/metrics.json")
if err != nil {
utils.Logger.Fatal("Failed to open metrics.json: ", err)
}
defer func(f *os.File) {
_ = f.Close()
}(f)
data, err := io.ReadAll(f)
if err != nil {
utils.Logger.Fatal("Failed to read metrics.json: ", err)
}
var metrics models.GameMetrics
if err := json.Unmarshal(data, &metrics); err != nil {
utils.Logger.Fatal("Failed to deserialize metrics.json: ", err)
}
gameMetrics = metrics
}
func GetGameMetric(gameTag string) *models.GameMetric {
for _, metric := range gameMetrics.GameMetrics {
if metric.GameName == gameTag {
return &metric
}
}
return nil
}
func FindWeaponMetric(weaponMetrics []models.WeaponMetric, weaponCategory string) *models.WeaponMetric {
for _, metric := range weaponMetrics {
if metric.WeaponCategory == weaponCategory {
return &metric
}
}
return nil
}