Add settings and implement auto default
This commit is contained in:
5
food.ddl
5
food.ddl
@@ -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;
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user