commands.go 832 B

123456789101112131415161718192021222324252627282930313233343536
  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, cmd.User)
  12. return extractor.ValidateAlerts()
  13. }
  14. func updateDashboardAlerts(cmd *m.UpdateDashboardAlertsCommand) error {
  15. saveAlerts := m.SaveAlertsCommand{
  16. OrgId: cmd.OrgId,
  17. UserId: cmd.User.UserId,
  18. DashboardId: cmd.Dashboard.Id,
  19. }
  20. extractor := NewDashAlertExtractor(cmd.Dashboard, cmd.OrgId, cmd.User)
  21. alerts, err := extractor.GetAlerts()
  22. if err != nil {
  23. return err
  24. }
  25. saveAlerts.Alerts = alerts
  26. return bus.Dispatch(&saveAlerts)
  27. }