base.go 922 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package notifiers
  2. import (
  3. "github.com/grafana/grafana/pkg/components/simplejson"
  4. "github.com/grafana/grafana/pkg/models"
  5. )
  6. type NotifierBase struct {
  7. Name string
  8. Type string
  9. SeverityFilter models.AlertSeverityType
  10. }
  11. func NewNotifierBase(name, notifierType string, model *simplejson.Json) NotifierBase {
  12. base := NotifierBase{Name: name, Type: notifierType}
  13. severityFilter := models.AlertSeverityType(model.Get("severityFilter").MustString(""))
  14. if severityFilter == models.AlertSeverityCritical || severityFilter == models.AlertSeverityWarning {
  15. base.SeverityFilter = severityFilter
  16. }
  17. return base
  18. }
  19. func (n *NotifierBase) MatchSeverity(result models.AlertSeverityType) bool {
  20. if !n.SeverityFilter.IsValid() {
  21. return true
  22. }
  23. return n.SeverityFilter == result
  24. }
  25. func (n *NotifierBase) GetType() string {
  26. return n.Type
  27. }
  28. func (n *NotifierBase) NeedsImage() bool {
  29. return true
  30. }