commands.go 907 B

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