feat(app state): settings are now global and get updated on the fly

This commit is contained in:
2025-08-05 12:40:34 -05:00
parent 2473bfa702
commit c7af1901aa
5 changed files with 245 additions and 46 deletions

View File

@@ -1,41 +1,39 @@
package settings
import (
"reflect"
"strings"
"gorm.io/gorm"
"lst.net/internal/models"
)
func GetAllSettings(db *gorm.DB) ([]map[string]interface{}, error) {
var settings []models.Settings
result := db.Find(&settings)
// var settings []models.Settings
// result := db.Find(&settings)
if result.Error != nil {
return nil, result.Error
}
// if result.Error != nil {
// return nil, result.Error
// }
// Function to convert struct to map with lowercase keys
toLowercase := func(s models.Settings) map[string]interface{} {
t := reflect.TypeOf(s)
v := reflect.ValueOf(s)
// // Function to convert struct to map with lowercase keys
// toLowercase := func(s models.Settings) map[string]interface{} {
// t := reflect.TypeOf(s)
// v := reflect.ValueOf(s)
data := make(map[string]interface{})
// data := make(map[string]interface{})
for i := 0; i < t.NumField(); i++ {
field := strings.ToLower(t.Field(i).Name)
data[field] = v.Field(i).Interface()
}
// for i := 0; i < t.NumField(); i++ {
// field := strings.ToLower(t.Field(i).Name)
// data[field] = v.Field(i).Interface()
// }
return data
}
// return data
// }
// Convert each struct in settings slice to a map with lowercase keys
var lowercaseSettings []map[string]interface{}
for _, setting := range settings {
lowercaseSettings = append(lowercaseSettings, toLowercase(setting))
}
// // Convert each struct in settings slice to a map with lowercase keys
// var lowercaseSettings []map[string]interface{}
// for _, setting := range settings {
// lowercaseSettings = append(lowercaseSettings, toLowercase(setting))
// }
return lowercaseSettings, nil
convertedSettings := GetMap()
return convertedSettings, nil
}