|
|
@@ -63,9 +63,22 @@ func GetAlerts(c *middleware.Context) Response {
|
|
|
return ApiError(500, "List alerts failed", err)
|
|
|
}
|
|
|
|
|
|
+ alertDTOs, resp := transformToDTOs(query.Result, c)
|
|
|
+ if resp != nil {
|
|
|
+ return resp
|
|
|
+ }
|
|
|
+
|
|
|
+ return Json(200, alertDTOs)
|
|
|
+}
|
|
|
+
|
|
|
+func transformToDTOs(alerts []*models.Alert, c *middleware.Context) ([]*dtos.AlertRule, Response) {
|
|
|
+ if len(alerts) == 0 {
|
|
|
+ return []*dtos.AlertRule{}, nil
|
|
|
+ }
|
|
|
+
|
|
|
dashboardIds := make([]int64, 0)
|
|
|
alertDTOs := make([]*dtos.AlertRule, 0)
|
|
|
- for _, alert := range query.Result {
|
|
|
+ for _, alert := range alerts {
|
|
|
dashboardIds = append(dashboardIds, alert.DashboardId)
|
|
|
alertDTOs = append(alertDTOs, &dtos.AlertRule{
|
|
|
Id: alert.Id,
|
|
|
@@ -84,10 +97,8 @@ func GetAlerts(c *middleware.Context) Response {
|
|
|
DashboardIds: dashboardIds,
|
|
|
}
|
|
|
|
|
|
- if len(alertDTOs) > 0 {
|
|
|
- if err := bus.Dispatch(&dashboardsQuery); err != nil {
|
|
|
- return ApiError(500, "List alerts failed", err)
|
|
|
- }
|
|
|
+ if err := bus.Dispatch(&dashboardsQuery); err != nil {
|
|
|
+ return nil, ApiError(500, "List alerts failed", err)
|
|
|
}
|
|
|
|
|
|
//TODO: should be possible to speed this up with lookup table
|
|
|
@@ -106,10 +117,8 @@ func GetAlerts(c *middleware.Context) Response {
|
|
|
OrgRole: c.SignedInUser.OrgRole,
|
|
|
}
|
|
|
|
|
|
- if len(alertDTOs) > 0 {
|
|
|
- if err := bus.Dispatch(&permissionsQuery); err != nil {
|
|
|
- return ApiError(500, "List alerts failed", err)
|
|
|
- }
|
|
|
+ if err := bus.Dispatch(&permissionsQuery); err != nil {
|
|
|
+ return nil, ApiError(500, "List alerts failed", err)
|
|
|
}
|
|
|
|
|
|
for _, alert := range alertDTOs {
|
|
|
@@ -120,7 +129,7 @@ func GetAlerts(c *middleware.Context) Response {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return Json(200, alertDTOs)
|
|
|
+ return alertDTOs, nil
|
|
|
}
|
|
|
|
|
|
// POST /api/alerts/test
|