package notifications import ( "errors" "github.com/statping/statping/database" ) var ( db database.Database ) func SetDB(database database.Database) { db = database.Model(&Notification{}) } func Find(method string) (*Notification, error) { var n Notification q := db.Where("method = ?", method).Find(&n) if &n == nil { return nil, errors.New("cannot find notifier") } n.UpdateFields(&n) return &n, q.Error() } func (n *Notification) Create() error { q := db.Where("method = ?", n.Method).Find(n) if q.RecordNotFound() { if err := db.Create(n).Error(); err != nil { return err } } return nil } func (n *Notification) UpdateFields(notif *Notification) *Notification { n.Limits = notif.Limits n.Enabled = notif.Enabled n.Host = notif.Host n.Port = notif.Port n.Username = notif.Username n.Password = notif.Password n.ApiKey = notif.ApiKey n.ApiSecret = notif.ApiSecret n.Var1 = notif.Var1 n.Var2 = notif.Var2 return n } func (n *Notification) Update() error { if err := db.Update(n).Error(); err != nil { return err } return nil }