99af2b8b16
- updated dbdiagrams schema - [BREAKING] force failure if `notify.filter_attributes` or `notify.level` is set - added Settings table (and default values during migration) - Added Save Settings and Get Settings functions. - Added web API endpoints for getting and saving settings. - Deprecated old Notify* constants. Created new MetricsStatus* and MetricsNotifyLevel constants.
36 lines
1.5 KiB
Go
36 lines
1.5 KiB
Go
package models
|
|
|
|
import "github.com/analogj/scrutiny/webapp/backend/pkg"
|
|
|
|
// Settings is made up of parsed SettingEntry objects retrieved from the database
|
|
type Settings struct {
|
|
MetricsNotifyLevel pkg.MetricsNotifyLevel `json:"metrics_notify_level"`
|
|
MetricsStatusFilterAttributes pkg.MetricsStatusFilterAttributes `json:"metrics_status_filter_attributes"`
|
|
MetricsStatusThreshold pkg.MetricsStatusThreshold `json:"metrics_status_threshold"`
|
|
}
|
|
|
|
func (s *Settings) PopulateFromSettingEntries(entries []SettingEntry) {
|
|
for _, entry := range entries {
|
|
if entry.SettingKeyName == "metrics.notify.level" {
|
|
s.MetricsNotifyLevel = pkg.MetricsNotifyLevel(entry.SettingValueNumeric)
|
|
} else if entry.SettingKeyName == "metrics.status.filter_attributes" {
|
|
s.MetricsStatusFilterAttributes = pkg.MetricsStatusFilterAttributes(entry.SettingValueNumeric)
|
|
} else if entry.SettingKeyName == "metrics.status.threshold" {
|
|
s.MetricsStatusThreshold = pkg.MetricsStatusThreshold(entry.SettingValueNumeric)
|
|
}
|
|
}
|
|
}
|
|
|
|
func (s *Settings) UpdateSettingEntries(entries []SettingEntry) []SettingEntry {
|
|
for _, entry := range entries {
|
|
if entry.SettingKeyName == "metrics.notify.level" {
|
|
entry.SettingValueNumeric = int64(s.MetricsNotifyLevel)
|
|
} else if entry.SettingKeyName == "metrics.status.filter_attributes" {
|
|
entry.SettingValueNumeric = int64(s.MetricsStatusFilterAttributes)
|
|
} else if entry.SettingKeyName == "metrics.status.threshold" {
|
|
entry.SettingValueNumeric = int64(s.MetricsStatusThreshold)
|
|
}
|
|
}
|
|
return entries
|
|
}
|