Browse Source

dashboards: return uid in response to creating/updating a dashboard. #7883

Marcus Efraimsson 8 years ago
parent
commit
46e1296700
2 changed files with 23 additions and 1 deletions
  1. 1 1
      pkg/api/dashboard.go
  2. 22 0
      pkg/api/dashboard_test.go

+ 1 - 1
pkg/api/dashboard.go

@@ -226,7 +226,7 @@ func PostDashboard(c *middleware.Context, cmd m.SaveDashboardCommand) Response {
 	}
 
 	c.TimeRequest(metrics.M_Api_Dashboard_Save)
-	return Json(200, util.DynMap{"status": "success", "slug": dashboard.Slug, "version": dashboard.Version, "id": dashboard.Id})
+	return Json(200, util.DynMap{"status": "success", "slug": dashboard.Slug, "version": dashboard.Version, "id": dashboard.Id, "uid": dashboard.Uid})
 }
 
 func GetHomeDashboard(c *middleware.Context) Response {

+ 22 - 0
pkg/api/dashboard_test.go

@@ -135,6 +135,11 @@ func TestDashboardApiEndpoint(t *testing.T) {
 			postDashboardScenario("When calling POST on", "/api/dashboards", "/api/dashboards", role, cmd, func(sc *scenarioContext) {
 				CallPostDashboard(sc)
 				So(sc.resp.Code, ShouldEqual, 200)
+				result := sc.ToJson()
+				So(result.Get("status").MustString(), ShouldEqual, "success")
+				So(result.Get("id").MustInt64(), ShouldBeGreaterThan, 0)
+				So(result.Get("uid").MustString(), ShouldNotBeNil)
+				So(result.Get("slug").MustString(), ShouldNotBeNil)
 			})
 
 			Convey("When saving a dashboard folder in another folder", func() {
@@ -306,6 +311,11 @@ func TestDashboardApiEndpoint(t *testing.T) {
 			postDashboardScenario("When calling POST on", "/api/dashboards", "/api/dashboards", role, cmd, func(sc *scenarioContext) {
 				CallPostDashboard(sc)
 				So(sc.resp.Code, ShouldEqual, 200)
+				result := sc.ToJson()
+				So(result.Get("status").MustString(), ShouldEqual, "success")
+				So(result.Get("id").MustInt64(), ShouldBeGreaterThan, 0)
+				So(result.Get("uid").MustString(), ShouldNotBeNil)
+				So(result.Get("slug").MustString(), ShouldNotBeNil)
 			})
 		})
 
@@ -378,6 +388,11 @@ func TestDashboardApiEndpoint(t *testing.T) {
 			postDashboardScenario("When calling POST on", "/api/dashboards", "/api/dashboards", role, cmd, func(sc *scenarioContext) {
 				CallPostDashboard(sc)
 				So(sc.resp.Code, ShouldEqual, 200)
+				result := sc.ToJson()
+				So(result.Get("status").MustString(), ShouldEqual, "success")
+				So(result.Get("id").MustInt64(), ShouldBeGreaterThan, 0)
+				So(result.Get("uid").MustString(), ShouldNotBeNil)
+				So(result.Get("slug").MustString(), ShouldNotBeNil)
 			})
 		})
 
@@ -519,3 +534,10 @@ func postDashboardScenario(desc string, url string, routePattern string, role m.
 		fn(sc)
 	})
 }
+
+func (sc *scenarioContext) ToJson() *simplejson.Json {
+	var result *simplejson.Json
+	err := json.NewDecoder(sc.resp.Body).Decode(&result)
+	So(err, ShouldBeNil)
+	return result
+}