HTTP API: fix for POST /api/dashboards/db returned 200 ok when dashboard was not found, Fixes #1929

This commit is contained in:
Torkel Ödegaard
2015-05-04 07:46:53 +02:00
parent 697529d0e8
commit 73ee8a5985
4 changed files with 28 additions and 3 deletions
+8 -2
View File
@@ -48,13 +48,19 @@ func SaveDashboard(cmd *m.SaveDashboardCommand) error {
}
}
affectedRows := int64(0)
if dash.Id == 0 {
metrics.M_Models_Dashboard_Insert.Inc(1)
_, err = sess.Insert(dash)
affectedRows, err = sess.Insert(dash)
} else {
dash.Version += 1
dash.Data["version"] = dash.Version
_, err = sess.Id(dash.Id).Update(dash)
affectedRows, err = sess.Id(dash.Id).Update(dash)
}
if affectedRows == 0 {
return m.ErrDashboardNotFound
}
// delete existing tabs
+15
View File
@@ -51,6 +51,21 @@ func TestDashboardDataAccess(t *testing.T) {
So(query.Result.Slug, ShouldEqual, "test-dash-23")
})
Convey("Should return error if no dashboard is updated", func() {
cmd := m.SaveDashboardCommand{
OrgId: 1,
Overwrite: true,
Dashboard: map[string]interface{}{
"id": float64(123412321),
"title": "Expect error",
"tags": []interface{}{},
},
}
err := SaveDashboard(&cmd)
So(err, ShouldNotBeNil)
})
Convey("Should be able to search for dashboard", func() {
query := m.SearchDashboardsQuery{
Title: "test",