Add settings and implement auto default

This commit is contained in:
2024-08-09 16:29:53 +02:00
parent a29213f35f
commit 66a6cb69d6
2 changed files with 36 additions and 18 deletions

View File

@@ -148,4 +148,9 @@ set per100 = coalesce(
where rowid = new .rowid; where rowid = new .rowid;
end; end;
create table settings(
key text not null primary key,
value text not null
);
commit; commit;

View File

@@ -13,10 +13,19 @@ type (
) )
type settings struct { type settings struct {
FoodDaysLookback string FoodDaysLookback int
FoodAggregatedDaysLookback string FoodAggregatedDaysLookback int
WeightDaysLookback string FoodDailyLookback int
WeightAggregatedDaysLookback string FoodWeeklyLookback int
FoodMonthlyLookback int
FoodYearlyLookback int
WeightDaysLookback int
WeightAggregatedDaysLookback int
WeightDailyLookback int
WeightWeeklyLookback int
WeightMonthlyLookback int
WeightYearlyLookback int
} }
var Settings settings var Settings settings
@@ -33,14 +42,18 @@ func (s *SettingsService) LoadSettings() error {
field := settingsType.Field(i) field := settingsType.Field(i)
key := field.Name key := field.Name
var value string var value int
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 {
log.Printf("error getting setting for key %s: %v", key, err) log.Printf("error getting setting for key %s: %v; setting default", key, err)
_, err := s.db.writeConn.Exec("INSERT INTO settings (key, value) VALUES (?, ?)", key, field.Tag.Get("default"))
if err != nil {
log.Printf("error inserting setting for key %s: %v", key, err)
continue continue
}
} }
settingsValue.Field(i).SetString(value) settingsValue.Field(i).SetInt(int64(value))
log.Println(key, value) log.Println(key, value)
} }
return nil return nil