Merge "CreateDashboard: Fix response code"
diff --git a/Documentation/rest-api-projects.txt b/Documentation/rest-api-projects.txt
index 76151b4..c1349aa 100644
--- a/Documentation/rest-api-projects.txt
+++ b/Documentation/rest-api-projects.txt
@@ -2787,17 +2787,18 @@
}
----
-[[set-dashboard]]
-=== Set Dashboard
+[[create-dashboard]]
+=== Create Dashboard
--
'PUT /projects/link:#project-name[\{project-name\}]/dashboards/link:#dashboard-id[\{dashboard-id\}]'
--
-Updates/Creates a project dashboard.
+Creates a project dashboard, if a project dashboard with the given
+dashboard ID doesn't exist yet.
Currently only supported for the `default` dashboard.
-The creation/update information for the dashboard must be provided in
+The creation information for the dashboard must be provided in
the request body as a link:#dashboard-input[DashboardInput] entity.
.Request
@@ -2811,7 +2812,63 @@
}
----
-As response the new/updated dashboard is returned as a
+As response the new dashboard is returned as a link:#dashboard-info[
+DashboardInfo] entity.
+
+.Response
+----
+ HTTP/1.1 201 Created
+ Content-Disposition: attachment
+ Content-Type: application/json; charset=UTF-8
+
+ )]}'
+ {
+ "id": "main:closed",
+ "ref": "main",
+ "path": "closed",
+ "description": "Merged and abandoned changes in last 7 weeks",
+ "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w",
+ "is_default": true,
+ "title": "Closed changes",
+ "sections": [
+ {
+ "name": "Merged",
+ "query": "status:merged age:7w"
+ },
+ {
+ "name": "Abandoned",
+ "query": "status:abandoned age:7w"
+ }
+ ]
+ }
+----
+
+[[update-dashboard]]
+=== Update Dashboard
+--
+'PUT /projects/link:#project-name[\{project-name\}]/dashboards/link:#dashboard-id[\{dashboard-id\}]'
+--
+
+Updates a project dashboard, if a project dashboard with the given
+dashboard ID already exists.
+
+Currently only supported for the `default` dashboard.
+
+The update information for the dashboard must be provided in
+the request body as a link:#dashboard-input[DashboardInput] entity.
+
+.Request
+----
+ PUT /projects/work%2Fmy-project/dashboards/default HTTP/1.0
+ Content-Type: application/json; charset=UTF-8
+
+ {
+ "id": "main:closed",
+ "commit_message": "Update the default dashboard"
+ }
+----
+
+As response the updated dashboard is returned as a
link:#dashboard-info[DashboardInfo] entity.
.Response
diff --git a/java/com/google/gerrit/server/restapi/project/CreateDashboard.java b/java/com/google/gerrit/server/restapi/project/CreateDashboard.java
index 24736b3..9904b1f 100644
--- a/java/com/google/gerrit/server/restapi/project/CreateDashboard.java
+++ b/java/com/google/gerrit/server/restapi/project/CreateDashboard.java
@@ -52,8 +52,9 @@
}
SetDefaultDashboard set = setDefault.get();
set.inherited = inherited;
- // TODO(ekempin): This should return Response.created(...) since it creates a new dashboard.
- return set.apply(
- DashboardResource.projectDefault(parent.getProjectState(), parent.getUser()), input);
+ return Response.created(
+ set.apply(
+ DashboardResource.projectDefault(parent.getProjectState(), parent.getUser()), input)
+ .value());
}
}