Revert "fix(alerting): pause dto can only pause one"

This reverts commit b2c5a6a037.
This commit is contained in:
bergquist 2016-12-19 16:07:55 +01:00
parent b2c5a6a037
commit 6c2c3c7e24
3 changed files with 27 additions and 11 deletions

View File

@ -259,10 +259,11 @@ func NotificationTest(c *middleware.Context, dto dtos.NotificationTestCommand) R
//POST /api/alerts/:alertId/pause //POST /api/alerts/:alertId/pause
func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response { func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response {
alertId := c.ParamsInt64("alertId")
cmd := models.PauseAlertCommand{ cmd := models.PauseAlertCommand{
OrgId: c.OrgId, OrgId: c.OrgId,
AlertId: c.ParamsInt64("alertId"), AlertIds: []int64{alertId},
Paused: dto.Paused, Paused: dto.Paused,
} }
if err := bus.Dispatch(&cmd); err != nil { if err := bus.Dispatch(&cmd); err != nil {
@ -277,7 +278,7 @@ func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response {
} }
result := map[string]interface{}{ result := map[string]interface{}{
"alertId": c.ParamsInt64("alertId"), "alertId": alertId,
"state": response, "state": response,
"message": "alert " + pausedState, "message": "alert " + pausedState,
} }

View File

@ -138,9 +138,10 @@ type SaveAlertsCommand struct {
} }
type PauseAlertCommand struct { type PauseAlertCommand struct {
OrgId int64 OrgId int64
AlertId int64 AlertIds []int64
Paused bool ResultCount int64
Paused bool
} }
type PauseAllAlertCommand struct { type PauseAllAlertCommand struct {

View File

@ -3,6 +3,7 @@ package sqlstore
import ( import (
"bytes" "bytes"
"fmt" "fmt"
"strings"
"time" "time"
"github.com/go-xorm/xorm" "github.com/go-xorm/xorm"
@ -251,18 +252,31 @@ func SetAlertState(cmd *m.SetAlertStateCommand) error {
func PauseAlert(cmd *m.PauseAlertCommand) error { func PauseAlert(cmd *m.PauseAlertCommand) error {
return inTransaction(func(sess *xorm.Session) 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) params := make([]interface{}, 0)
sql := `UPDATE alert SET state = ? WHERE id = ?` buffer.WriteString(`UPDATE alert SET state = ?`)
if cmd.Paused { if cmd.Paused {
params = append(params, string(m.AlertStatePaused)) params = append(params, string(m.AlertStatePaused))
} else { } else {
params = append(params, string(m.AlertStatePending)) params = append(params, string(m.AlertStatePending))
} }
params = append(params, cmd.AlertId)
_, err := sess.Exec(sql, params...) buffer.WriteString(` WHERE id IN (?` + strings.Repeat(",?", len(cmd.AlertIds)-1) + `)`)
return err 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
}) })
} }