func HandleAlertsQuery(query *m.GetAlertsQuery) error { var sql bytes.Buffer params := make([]interface{}, 0) sql.WriteString(`SELECT * from alert `) sql.WriteString(`WHERE org_id = ?`) params = append(params, query.OrgId) if query.DashboardId != 0 { sql.WriteString(` AND dashboard_id = ?`) params = append(params, query.DashboardId) } if query.PanelId != 0 { sql.WriteString(` AND panel_id = ?`) params = append(params, query.PanelId) } if len(query.State) > 0 && query.State[0] != "ALL" { sql.WriteString(` AND (`) for i, v := range query.State { if i > 0 { sql.WriteString(" OR ") } sql.WriteString("state = ? ") params = append(params, v) } sql.WriteString(")") } if query.Limit != 0 { sql.WriteString(" LIMIT ?") params = append(params, query.Limit) } sql.WriteString(" ORDER BY name ASC") alerts := make([]*m.Alert, 0) if err := x.Sql(sql.String(), params...).Find(&alerts); err != nil { return err } for i, _ := range alerts { if alerts[i].ExecutionError == " " { alerts[i].ExecutionError = "" } } query.Result = alerts return nil }
func GetAlerts(query *m.GetAlertsQuery) error { sess := x.Limit(100, 0).Where("org_id=?", query.OrgId).Asc("id") query.Result = make([]*m.Alert, 0) return sess.Find(&query.Result) }