Commit 4ef95cfd by bergquist

style(api): reduce code complexity

parent 1f8f3ed0
...@@ -288,15 +288,17 @@ func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response { ...@@ -288,15 +288,17 @@ func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response {
//POST /api/alerts/pause //POST /api/alerts/pause
func PauseAlerts(c *middleware.Context, dto dtos.PauseAlertsCommand) Response { func PauseAlerts(c *middleware.Context, dto dtos.PauseAlertsCommand) Response {
updateCmd := models.PauseAlertCommand{
OrgId: c.OrgId,
Paused: dto.Paused,
}
if len(dto.DataSourceIds) > 0 {
alertIdsToUpdate, err := getAlertIdsToUpdate(dto) alertIdsToUpdate, err := getAlertIdsToUpdate(dto)
if err != nil { if err != nil {
return ApiError(500, "Failed to pause alerts", err) return ApiError(500, "Failed to pause alerts", err)
} }
updateCmd.AlertIds = alertIdsToUpdate
updateCmd := models.PauseAlertCommand{
OrgId: c.OrgId,
AlertIds: alertIdsToUpdate,
Paused: dto.Paused,
} }
if err := bus.Dispatch(&updateCmd); err != nil { if err := bus.Dispatch(&updateCmd); err != nil {
...@@ -326,20 +328,14 @@ func getAlertIdsToUpdate(pauseAlertCmd dtos.PauseAlertsCommand) ([]int64, error) ...@@ -326,20 +328,14 @@ func getAlertIdsToUpdate(pauseAlertCmd dtos.PauseAlertsCommand) ([]int64, error)
} }
var alertIdsToUpdate []int64 var alertIdsToUpdate []int64
updateAllAlerts := len(pauseAlertCmd.DataSourceIds) == 0
for _, alert := range cmd.Result { for _, alert := range cmd.Result {
if updateAllAlerts {
alertIdsToUpdate = append(alertIdsToUpdate, alert.Id)
continue
}
alert, err := alerting.NewRuleFromDBAlert(alert) alert, err := alerting.NewRuleFromDBAlert(alert)
if err != nil { if err != nil {
return nil, err return nil, err
} }
for _, condition := range alert.Conditions { for _, condition := range alert.Conditions {
id, exist := condition.GetDatsourceId() id, exist := condition.GetDatasourceId()
if exist && existInSlice(pauseAlertCmd.DataSourceIds, *id) { if exist && existInSlice(pauseAlertCmd.DataSourceIds, *id) {
alertIdsToUpdate = append(alertIdsToUpdate, alert.Id) alertIdsToUpdate = append(alertIdsToUpdate, alert.Id)
} }
......
package api
import (
"testing"
. "github.com/smartystreets/goconvey/convey"
)
func TestAlertingApi(t *testing.T) {
Convey("", func() {})
}
...@@ -34,7 +34,7 @@ type AlertQuery struct { ...@@ -34,7 +34,7 @@ type AlertQuery struct {
To string To string
} }
func (c *QueryCondition) GetDatsourceId() (datasourceId *int64, exist bool) { func (c *QueryCondition) GetDatasourceId() (datasourceId *int64, exist bool) {
return &c.Query.DatasourceId, true return &c.Query.DatasourceId, true
} }
......
...@@ -18,6 +18,10 @@ func (c *conditionStub) Eval(context *EvalContext) (*ConditionResult, error) { ...@@ -18,6 +18,10 @@ func (c *conditionStub) Eval(context *EvalContext) (*ConditionResult, error) {
return &ConditionResult{Firing: c.firing, EvalMatches: c.matches, Operator: c.operator, NoDataFound: c.noData}, nil return &ConditionResult{Firing: c.firing, EvalMatches: c.matches, Operator: c.operator, NoDataFound: c.noData}, nil
} }
func (c *conditionStub) GetDatasourceId() (datasourceId *int64, exist bool) {
return nil, false
}
func TestAlertingExecutor(t *testing.T) { func TestAlertingExecutor(t *testing.T) {
Convey("Test alert execution", t, func() { Convey("Test alert execution", t, func() {
handler := NewEvalHandler() handler := NewEvalHandler()
......
...@@ -30,5 +30,5 @@ type ConditionResult struct { ...@@ -30,5 +30,5 @@ type ConditionResult struct {
type Condition interface { type Condition interface {
Eval(result *EvalContext) (*ConditionResult, error) Eval(result *EvalContext) (*ConditionResult, error)
GetDatsourceId() (datasourceId *int64, exist bool) GetDatasourceId() (datasourceId *int64, exist bool)
} }
...@@ -14,6 +14,10 @@ func (f *FakeCondition) Eval(context *EvalContext) (*ConditionResult, error) { ...@@ -14,6 +14,10 @@ func (f *FakeCondition) Eval(context *EvalContext) (*ConditionResult, error) {
return &ConditionResult{}, nil return &ConditionResult{}, nil
} }
func (c *FakeCondition) GetDatasourceId() (datasourceId *int64, exist bool) {
return nil, false
}
func TestAlertRuleModel(t *testing.T) { func TestAlertRuleModel(t *testing.T) {
Convey("Testing alert rule", t, func() { Convey("Testing alert rule", t, func() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment