Rework settings to make them appear as if it was not a retard who wrote them

This commit is contained in:
2024-08-09 15:26:29 +02:00
parent 3f5353b587
commit b265a06ce7
2 changed files with 28 additions and 18 deletions

View File

@@ -48,7 +48,7 @@ func main() {
} }
settingsService := SettingsService{db: &db} settingsService := SettingsService{db: &db}
_, err = settingsService.LoadSettings() err = settingsService.LoadSettings()
if err != nil { if err != nil {
Error.Printf("%++v", err) Error.Printf("%++v", err)
os.Exit(1) os.Exit(1)

View File

@@ -3,6 +3,7 @@ package main
import ( import (
"fmt" "fmt"
"log" "log"
"reflect"
) )
type ( type (
@@ -11,27 +12,36 @@ type (
} }
) )
var Settings map[string]string = map[string]string{ type settings struct {
"FoodDaysLookback": "7", FoodDaysLookback string
"FoodAggregatedDaysLookback": "7", FoodAggregatedDaysLookback string
"WeightDaysLookback": "7", WeightDaysLookback string
"WeightAggregatedDaysLookback": "7", WeightAggregatedDaysLookback string
} }
func (s *SettingsService) LoadSettings() (map[string]string, error) { var Settings settings
func (s *SettingsService) LoadSettings() error {
if s.db == nil || !s.db.Ready { if s.db == nil || !s.db.Ready {
return Settings, fmt.Errorf("cannot load Settings, db is nil or is not ready") return fmt.Errorf("cannot load Settings, db is nil or is not ready")
} }
for key := range Settings { settingsValue := reflect.ValueOf(&Settings).Elem()
settingsType := settingsValue.Type()
for i := 0; i < settingsValue.NumField(); i++ {
field := settingsType.Field(i)
key := field.Name
var value string var value string
err := s.db.readConn.QueryRow("SELECT value FROM settings WHERE key = ?", key).Scan(&value) err := s.db.readConn.QueryRow("SELECT value FROM settings WHERE key = ?", key).Scan(&value)
if err != nil { if err != nil {
Error.Printf("error getting setting for key %s: %++v", key, err) log.Printf("error getting setting for key %s: %v", key, err)
continue continue
} }
settingsValue.Field(i).SetString(value)
log.Println(key, value) log.Println(key, value)
} }
return nil
return Settings, nil
} }