You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.5 KiB
36 lines
1.5 KiB
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
|
|
}
|