From b2c5a6a037c975390b8f0986d09b5013c5ce2b1b Mon Sep 17 00:00:00 2001 From: bergquist Date: Mon, 19 Dec 2016 16:05:24 +0100 Subject: [PATCH] fix(alerting): pause dto can only pause one --- pkg/api/alerting.go | 9 ++++----- pkg/models/alert.go | 7 +++---- pkg/services/sqlstore/alert.go | 22 ++++------------------ 3 files changed, 11 insertions(+), 27 deletions(-) diff --git a/pkg/api/alerting.go b/pkg/api/alerting.go index 245931eb7af..0ec98018635 100644 --- a/pkg/api/alerting.go +++ b/pkg/api/alerting.go @@ -259,11 +259,10 @@ func NotificationTest(c *middleware.Context, dto dtos.NotificationTestCommand) R //POST /api/alerts/:alertId/pause func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response { - alertId := c.ParamsInt64("alertId") cmd := models.PauseAlertCommand{ - OrgId: c.OrgId, - AlertIds: []int64{alertId}, - Paused: dto.Paused, + OrgId: c.OrgId, + AlertId: c.ParamsInt64("alertId"), + Paused: dto.Paused, } if err := bus.Dispatch(&cmd); err != nil { @@ -278,7 +277,7 @@ func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response { } result := map[string]interface{}{ - "alertId": alertId, + "alertId": c.ParamsInt64("alertId"), "state": response, "message": "alert " + pausedState, } diff --git a/pkg/models/alert.go b/pkg/models/alert.go index 13cae0715f7..176c146d51d 100644 --- a/pkg/models/alert.go +++ b/pkg/models/alert.go @@ -138,10 +138,9 @@ type SaveAlertsCommand struct { } type PauseAlertCommand struct { - OrgId int64 - AlertIds []int64 - ResultCount int64 - Paused bool + OrgId int64 + AlertId int64 + Paused bool } type PauseAllAlertCommand struct { diff --git a/pkg/services/sqlstore/alert.go b/pkg/services/sqlstore/alert.go index 8718b03e786..7e3ea7de21b 100644 --- a/pkg/services/sqlstore/alert.go +++ b/pkg/services/sqlstore/alert.go @@ -3,7 +3,6 @@ package sqlstore import ( "bytes" "fmt" - "strings" "time" "github.com/go-xorm/xorm" @@ -252,31 +251,18 @@ func SetAlertState(cmd *m.SetAlertStateCommand) error { func PauseAlert(cmd *m.PauseAlertCommand) error { return inTransaction(func(sess *xorm.Session) error { - if len(cmd.AlertIds) == 0 { - return fmt.Errorf("command contains no alertids") - } - - var buffer bytes.Buffer params := make([]interface{}, 0) - buffer.WriteString(`UPDATE alert SET state = ?`) + sql := `UPDATE alert SET state = ? WHERE id = ?` if cmd.Paused { params = append(params, string(m.AlertStatePaused)) } else { params = append(params, string(m.AlertStatePending)) } + params = append(params, cmd.AlertId) - buffer.WriteString(` WHERE id IN (?` + strings.Repeat(",?", len(cmd.AlertIds)-1) + `)`) - for _, v := range cmd.AlertIds { - params = append(params, v) - } - - res, err := sess.Exec(buffer.String(), params...) - if err != nil { - return err - } - cmd.ResultCount, _ = res.RowsAffected() - return nil + _, err := sess.Exec(sql, params...) + return err }) }