commands.go 735 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package alerting
  2. import (
  3. "github.com/grafana/grafana/pkg/bus"
  4. m "github.com/grafana/grafana/pkg/models"
  5. )
  6. type UpdateDashboardAlertsCommand struct {
  7. UserId int64
  8. OrgId int64
  9. Dashboard *m.Dashboard
  10. }
  11. func init() {
  12. bus.AddHandler("alerting", updateDashboardAlerts)
  13. }
  14. func updateDashboardAlerts(cmd *UpdateDashboardAlertsCommand) error {
  15. saveAlerts := m.SaveAlertsCommand{
  16. OrgId: cmd.OrgId,
  17. UserId: cmd.UserId,
  18. DashboardId: cmd.Dashboard.Id,
  19. }
  20. extractor := NewDashAlertExtractor(cmd.Dashboard, cmd.OrgId)
  21. if alerts, err := extractor.GetAlerts(); err != nil {
  22. return err
  23. } else {
  24. saveAlerts.Alerts = alerts
  25. }
  26. if err := bus.Dispatch(&saveAlerts); err != nil {
  27. return err
  28. }
  29. return nil
  30. }