Browse Source

feat(alerting): only expose DTO info when requesting all notifications

bergquist 9 years ago
parent
commit
0c5da9155f

+ 13 - 1
pkg/api/alerting.go

@@ -166,7 +166,19 @@ func GetAlertNotifications(c *middleware.Context) Response {
 		return ApiError(500, "Failed to get alert notifications", err)
 	}
 
-	return Json(200, query.Result)
+	var result []dtos.AlertNotificationDTO
+
+	for _, notification := range query.Result {
+		result = append(result, dtos.AlertNotificationDTO{
+			Id:      notification.Id,
+			Name:    notification.Name,
+			Type:    notification.Type,
+			Created: notification.Created,
+			Updated: notification.Updated,
+		})
+	}
+
+	return Json(200, result)
 }
 
 func GetAlertNotificationById(c *middleware.Context) Response {

+ 1 - 1
pkg/api/api.go

@@ -263,7 +263,7 @@ func Register(r *macaron.Macaron) {
 				r.Delete("/:notificationId", wrap(DeleteAlertNotification))
 			})
 
-			r.Get("/changes", wrap(GetAlertChanges))
+			//r.Get("/changes", wrap(GetAlertChanges))
 		})
 
 		// error test

+ 10 - 0
pkg/api/dtos/alerting.go

@@ -1,5 +1,7 @@
 package dtos
 
+import "time"
+
 type AlertRuleDTO struct {
 	Id           int64   `json:"id"`
 	DashboardId  int64   `json:"dashboardId"`
@@ -19,3 +21,11 @@ type AlertRuleDTO struct {
 
 	DashbboardUri string `json:"dashboardUri"`
 }
+
+type AlertNotificationDTO struct {
+	Id      int64     `json:"id"`
+	Name    string    `json:"name"`
+	Type    string    `json:"type"`
+	Created time.Time `json:"created"`
+	Updated time.Time `json:"updated"`
+}

+ 3 - 0
public/app/plugins/panel/graph/partials/tab_alerting.html

@@ -109,8 +109,11 @@
       <div class="gf-form-inline">
         <div class="gf-form">
           <span class="gf-form-label">Groups</span>
+          <input class="gf-form-input max-width-7" type="text" ng-model="ctrl.alert.notify"></input>
+          <!--
           <bootstrap-tagsinput ng-model="ctrl.alert.notify" tagclass="label label-tag" placeholder="add tags">
           </bootstrap-tagsinput>
+          -->
         </div>
       </div>
     </div>