REST API: change PUT -> POST for "update" endpoint
PUT suggests that the whole resource is inserted/replaced, since the
endpoint adds/removes a single reviewer POST is more appropriate.
Feature: Issue 12649
Change-Id: Id5217e0e930c7d3ed4aff3f769bbc3b172d0f670
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
index 20b09be..c34baf0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/Module.java
@@ -81,7 +81,7 @@
@Override
protected void configure() {
get(PROJECT_KIND, "reviewers").to(GetReviewers.class);
- put(PROJECT_KIND, "reviewers").to(PutReviewers.class);
+ post(PROJECT_KIND, "reviewers").to(PostReviewers.class);
}
});
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewers/PutReviewers.java b/src/main/java/com/googlesource/gerrit/plugins/reviewers/PostReviewers.java
similarity index 96%
rename from src/main/java/com/googlesource/gerrit/plugins/reviewers/PutReviewers.java
rename to src/main/java/com/googlesource/gerrit/plugins/reviewers/PostReviewers.java
index 58ae003..c65e406 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewers/PutReviewers.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewers/PostReviewers.java
@@ -44,7 +44,7 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import com.googlesource.gerrit.plugins.reviewers.PutReviewers.Input;
+import com.googlesource.gerrit.plugins.reviewers.PostReviewers.Input;
import com.googlesource.gerrit.plugins.reviewers.config.FiltersFactory;
import com.googlesource.gerrit.plugins.reviewers.config.ForProject;
import java.io.IOException;
@@ -53,9 +53,9 @@
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
-/** PUT REST end-point that removes or adds a reviewer to a {@link ReviewerFilter}. */
+/** POST REST end-point that removes or adds a reviewer to a {@link ReviewerFilter}. */
@Singleton
-class PutReviewers implements RestModifyView<ProjectResource, Input> {
+class PostReviewers implements RestModifyView<ProjectResource, Input> {
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
protected static class Input {
@@ -80,7 +80,7 @@
private final PermissionBackend permissionBackend;
@Inject
- PutReviewers(
+ PostReviewers(
@PluginName String pluginName,
FiltersFactory filters,
ForProject.Factory forProjectFactory,
diff --git a/src/main/resources/Documentation/rest-api.md b/src/main/resources/Documentation/rest-api.md
index 957318f..683ed46 100644
--- a/src/main/resources/Documentation/rest-api.md
+++ b/src/main/resources/Documentation/rest-api.md
@@ -52,7 +52,7 @@
```
### <a id="change-reviewers"> Change Reviewers
-_PUT /projects/project_name/@PLUGIN@_
+_POST /projects/project_name/@PLUGIN@_
Changes the default reviewers for the specified project.
@@ -65,7 +65,7 @@
#### Request
```
- PUT /projects/myproject/@PLUGIN@ HTTP/1.0
+ POST /projects/myproject/@PLUGIN@ HTTP/1.0
Content-Type: application/json;charset=UTF-8
{
"action": "ADD",
diff --git a/web/rv-filter-section.ts b/web/rv-filter-section.ts
index a062de9..4162df2 100644
--- a/web/rv-filter-section.ts
+++ b/web/rv-filter-section.ts
@@ -204,13 +204,13 @@
this.editingReviewer = false;
} else {
// The reviewer was not in edit mode, but DELETE was clicked.
- this.putReviewer(reviewer, Action.REMOVE, type);
+ this.postReviewer(reviewer, Action.REMOVE, type);
}
}
private handleReviewerAdded(e: CustomEvent<ReviewerAddedEventDetail>) {
this.editingReviewer = false;
- this.putReviewer(e.detail.reviewer, Action.ADD, e.detail.type).catch(
+ this.postReviewer(e.detail.reviewer, Action.ADD, e.detail.type).catch(
err => {
fire(this, 'show-alert', {message: err});
throw err;
@@ -218,11 +218,11 @@
);
}
- private putReviewer(reviewer: string, action: Action, type: Type) {
+ private postReviewer(reviewer: string, action: Action, type: Type) {
if (this.filter === '') throw new Error('empty filter');
if (reviewer === '') throw new Error('empty reviewer');
return this.pluginRestApi
- .put<Section[]>(this.reviewersUrl, {
+ .post<Section[]>(this.reviewersUrl, {
action,
reviewer,
type,