alerting.go 743 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package sqlstore
  2. import (
  3. "fmt"
  4. "github.com/grafana/grafana/pkg/bus"
  5. m "github.com/grafana/grafana/pkg/models"
  6. )
  7. func init() {
  8. bus.AddHandler("sql", SaveAlerts)
  9. }
  10. func SaveAlerts(cmd *m.SaveAlertsCommand) error {
  11. fmt.Printf("Saving alerts for dashboard %v\n", cmd.DashboardId)
  12. for _, alert := range *cmd.Alerts {
  13. _, err := x.Insert(&alert)
  14. if err != nil {
  15. return err
  16. }
  17. }
  18. return nil
  19. }
  20. func GetAlertsByDashboard(dashboardId, panelId int64) (m.Alert, error) {
  21. // this code should be refactored!!
  22. // uniqueness should be garanted!
  23. alerts := make([]m.Alert, 0)
  24. err := x.Where("dashboard_id = ? and panel_id = ?", dashboardId, panelId).Find(&alerts)
  25. if err != nil {
  26. return m.Alert{}, err
  27. }
  28. return alerts[0], nil
  29. }