]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-17705 Remove usage of 'id' and 'gateId' parameters in quality gates endpoints
authorLéo Geoffroy <leo.geoffroy@sonarsource.com>
Tue, 31 Jan 2023 15:36:26 +0000 (16:36 +0100)
committersonartech <sonartech@sonarsource.com>
Thu, 2 Feb 2023 20:03:41 +0000 (20:03 +0000)
29 files changed:
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/CopyAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/CreateAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/CreateConditionAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/DestroyAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/QualityGatesWsParameters.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/RenameAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/SearchAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/SelectAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/SetAsDefaultAction.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/ws/ShowAction.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/CopyActionTest.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/CreateActionTest.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/CreateConditionActionTest.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/DestroyActionTest.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/RenameActionTest.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/SearchActionTest.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/SelectActionTest.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/SetAsDefaultActionTest.java
server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualitygate/ws/ShowActionTest.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/CopyRequest.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/CreateConditionRequest.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/DestroyRequest.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/QualityGatesServiceCreateResponseJsonParser.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/QualitygatesService.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/SearchRequest.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/SelectRequest.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/SetAsDefaultRequest.java
sonar-ws/src/main/java/org/sonarqube/ws/client/qualitygates/ShowRequest.java
sonar-ws/src/main/protobuf/ws-qualitygates.proto

index 499972d68a5a652e19c27ea0357db6634b3fb872..462470949b9c457c52137ef93e04911dc7f65870 100644 (file)
@@ -29,11 +29,8 @@ import org.sonar.db.qualitygate.QualityGateDto;
 import org.sonar.server.qualitygate.QualityGateUpdater;
 import org.sonar.server.user.UserSession;
 
-import static com.google.common.base.Preconditions.checkArgument;
-import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
 import static org.sonar.server.qualitygate.ws.CreateAction.NAME_MAXIMUM_LENGTH;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ID;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_SOURCE_NAME;
 import static org.sonar.server.ws.WsUtils.writeProtobuf;
@@ -61,20 +58,15 @@ public class CopyAction implements QualityGatesWsAction {
         "Either 'sourceName' or 'id' must be provided. Requires the 'Administer Quality Gates' permission.")
       .setPost(true)
       .setChangelog(
+        new Change("10.0", "Parameter 'id' is removed. Use 'sourceName' instead."),
         new Change("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'sourceName' instead."),
         new Change("8.4", "Parameter 'sourceName' added"))
       .setSince("4.3")
       .setHandler(this);
 
-    action.createParam(PARAM_ID)
-      .setDescription("The ID of the source quality gate. This parameter is deprecated. Use 'sourceName' instead.")
-      .setRequired(false)
-      .setDeprecatedSince("8.4")
-      .setExampleValue(UUID_EXAMPLE_01);
-
     action.createParam(PARAM_SOURCE_NAME)
       .setDescription("The name of the quality gate to copy")
-      .setRequired(false)
+      .setRequired(true)
       .setMaximumLength(NAME_MAXIMUM_LENGTH)
       .setSince("8.4")
       .setExampleValue("My Quality Gate");
@@ -87,21 +79,14 @@ public class CopyAction implements QualityGatesWsAction {
 
   @Override
   public void handle(Request request, Response response) {
-    String uuid = request.param(PARAM_ID);
-    String sourceName = request.param(PARAM_SOURCE_NAME);
-    checkArgument(sourceName != null ^ uuid != null, "Either 'id' or 'sourceName' must be provided, and not both");
+    String sourceName = request.mandatoryParam(PARAM_SOURCE_NAME);
 
     String destinationName = request.mandatoryParam(PARAM_NAME);
 
     try (DbSession dbSession = dbClient.openSession(false)) {
 
       userSession.checkPermission(ADMINISTER_QUALITY_GATES);
-      QualityGateDto qualityGate;
-      if (uuid != null) {
-        qualityGate = wsSupport.getByUuid(dbSession, uuid);
-      } else {
-        qualityGate = wsSupport.getByName(dbSession, sourceName);
-      }
+      QualityGateDto qualityGate = wsSupport.getByName(dbSession, sourceName);
       QualityGateDto copy = qualityGateUpdater.copy(dbSession, qualityGate, destinationName);
       dbSession.commit();
 
index cad83a28e84e99f09cecea95fb3f922f83dc3852..371756e40d2c46725f986f4d07f3076807686d29 100644 (file)
@@ -81,6 +81,7 @@ public class CreateAction implements QualityGatesWsAction {
         "Requires the 'Administer Quality Gates' permission.")
       .setSince("4.3")
       .setChangelog(
+        new Change("10.0", "Field 'id' in the response is removed."),
         new Change("8.4", "Field 'id' in the response is deprecated. Format changes from integer to string."))
       .setResponseExample(getClass().getResource("create-example.json"))
       .setHandler(this);
@@ -103,7 +104,6 @@ public class CreateAction implements QualityGatesWsAction {
       addCaycConditions(dbSession, newQualityGate);
 
       CreateResponse.Builder createResponse = CreateResponse.newBuilder()
-        .setId(newQualityGate.getUuid())
         .setName(newQualityGate.getName());
       dbSession.commit();
       writeProtobuf(createResponse.build(), request, response);
index 04ca261dc039a341bf9f4ebff4d1bc8d52171bfa..c33aff75b4f7acd5bfdd29926b7edf5f2975ce3e 100644 (file)
@@ -30,11 +30,9 @@ import org.sonar.db.qualitygate.QualityGateDto;
 import org.sonar.server.qualitygate.QualityGateConditionsUpdater;
 import org.sonarqube.ws.Qualitygates.CreateConditionResponse;
 
-import static com.google.common.base.Preconditions.checkArgument;
 import static org.sonar.server.qualitygate.ws.QualityGatesWs.addConditionParams;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.ACTION_CREATE_CONDITION;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ERROR;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_ID;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_NAME;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_METRIC;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_OPERATOR;
@@ -65,19 +63,13 @@ public class CreateConditionAction implements QualityGatesWsAction {
         new Change("7.6", "Made 'error' parameter mandatory"),
         new Change("7.6", "Reduced the possible values of 'op' parameter to LT and GT"),
         new Change("8.4", "Parameter 'gateName' added"),
-        new Change("8.4", "Parameter 'gateId' is deprecated. Use 'gateName' instead."))
+        new Change("8.4", "Parameter 'gateId' is deprecated. Use 'gateName' instead."),
+        new Change("10.0", "Parameter 'gateId' is removed. Use 'gateName' instead."))
       .setHandler(this);
 
-    createCondition
-      .createParam(PARAM_GATE_ID)
-      .setDeprecatedSince("8.4")
-      .setRequired(false)
-      .setDescription("ID of the quality gate. This parameter is deprecated. Use 'gateName' instead.")
-      .setExampleValue("1");
-
     createCondition
       .createParam(PARAM_GATE_NAME)
-      .setRequired(false)
+      .setRequired(true)
       .setDescription("Name of the quality gate")
       .setExampleValue("SonarSource way");
 
@@ -86,20 +78,14 @@ public class CreateConditionAction implements QualityGatesWsAction {
 
   @Override
   public void handle(Request request, Response response) {
-    String gateUuid = request.param(PARAM_GATE_ID);
-    String gateName = request.param(PARAM_GATE_NAME);
+    String gateName = request.mandatoryParam(PARAM_GATE_NAME);
     String metric = request.mandatoryParam(PARAM_METRIC);
     String operator = request.mandatoryParam(PARAM_OPERATOR);
     String error = request.mandatoryParam(PARAM_ERROR);
-    checkArgument(gateName != null ^ gateUuid != null, "One of 'gateId' or 'gateName' must be provided, and not both");
 
     try (DbSession dbSession = dbClient.openSession(false)) {
-      QualityGateDto qualityGate;
-      if (gateUuid != null) {
-        qualityGate = wsSupport.getByUuid(dbSession, gateUuid);
-      } else {
-        qualityGate = wsSupport.getByName(dbSession, gateName);
-      }
+      QualityGateDto qualityGate = wsSupport.getByName(dbSession, gateName);
+
       wsSupport.checkCanLimitedEdit(dbSession, qualityGate);
       QualityGateConditionDto condition = qualityGateConditionsUpdater.createCondition(dbSession, qualityGate, metric, operator, error);
       CreateConditionResponse.Builder createConditionResponse = CreateConditionResponse.newBuilder()
index b0eefdd63060749af81749e13d2e16d9c5ea55c7..e07e4426100713a77df78cbdfe324ff7c9abe044 100644 (file)
@@ -29,7 +29,6 @@ import org.sonar.db.qualitygate.QualityGateDto;
 import org.sonar.server.qualitygate.QualityGateFinder;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
 import static org.sonar.server.qualitygate.ws.CreateAction.NAME_MAXIMUM_LENGTH;
 
 public class DestroyAction implements QualityGatesWsAction {
@@ -52,19 +51,14 @@ public class DestroyAction implements QualityGatesWsAction {
       .setSince("4.3")
       .setPost(true)
       .setChangelog(
+        new Change("10.0", "Parameter 'name' is removed. Use 'name' instead."),
         new Change("8.4", "Parameter 'name' added"),
         new Change("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'name' instead."))
       .setHandler(this);
 
-    action.createParam(QualityGatesWsParameters.PARAM_ID)
-      .setDescription("ID of the quality gate to delete. This parameter is deprecated. Use 'name' instead.")
-      .setRequired(false)
-      .setDeprecatedSince("8.4")
-      .setExampleValue(UUID_EXAMPLE_01);
-
     action.createParam(QualityGatesWsParameters.PARAM_NAME)
       .setDescription("Name of the quality gate to delete")
-      .setRequired(false)
+      .setRequired(true)
       .setMaximumLength(NAME_MAXIMUM_LENGTH)
       .setSince("8.4")
       .setExampleValue("SonarSource Way");
@@ -72,19 +66,13 @@ public class DestroyAction implements QualityGatesWsAction {
 
   @Override
   public void handle(Request request, Response response) {
-    String uuid = request.param(QualityGatesWsParameters.PARAM_ID);
-    String name = request.param(QualityGatesWsParameters.PARAM_NAME);
+    String name = request.mandatoryParam(QualityGatesWsParameters.PARAM_NAME);
 
-    checkArgument(name != null ^ uuid != null, "One of 'id' or 'name' must be provided, and not both");
 
     try (DbSession dbSession = dbClient.openSession(false)) {
       QualityGateDto qualityGate;
 
-      if (uuid != null) {
-        qualityGate = wsSupport.getByUuid(dbSession, uuid);
-      } else {
-        qualityGate = wsSupport.getByName(dbSession, name);
-      }
+      qualityGate = wsSupport.getByName(dbSession, name);
 
       QualityGateDto defaultQualityGate = finder.getDefault(dbSession);
       checkArgument(!defaultQualityGate.getUuid().equals(qualityGate.getUuid()), "The default quality gate cannot be removed");
index b437b2a49c3584661641cb64ab2466e5928fd0dd..1b2e7d447cc334b26c063daeb283c1fe363d5de4 100644 (file)
@@ -49,7 +49,6 @@ public class QualityGatesWsParameters {
   public static final String PARAM_ERROR = "error";
   public static final String PARAM_OPERATOR = "op";
   public static final String PARAM_METRIC = "metric";
-  public static final String PARAM_GATE_ID = "gateId";
   public static final String PARAM_GATE_NAME = "gateName";
   public static final String PARAM_ID = "id";
   public static final String PARAM_SOURCE_NAME = "sourceName";
index 195738b2dc11426cdb09dcb6cb2029cd3b27ac5e..a51e18a8e08186b21c94bb807d708c256c7d2288 100644 (file)
@@ -29,10 +29,8 @@ import org.sonar.db.qualitygate.QualityGateDto;
 import org.sonarqube.ws.Qualitygates.QualityGate;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
 import static org.sonar.server.qualitygate.ws.CreateAction.NAME_MAXIMUM_LENGTH;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_CURRENT_NAME;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ID;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
 import static org.sonar.server.ws.WsUtils.writeProtobuf;
 
@@ -54,18 +52,13 @@ public class RenameAction implements QualityGatesWsAction {
         "Either 'id' or 'currentName' must be specified. Requires the 'Administer Quality Gates' permission.")
       .setSince("4.3")
       .setChangelog(
+        new Change("10.0", "Parameter 'id' is removed. Use 'currentName' instead."),
         new Change("8.4", "Parameter 'currentName' added"),
         new Change("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'currentName' instead."))
       .setHandler(this);
 
-    action.createParam(PARAM_ID)
-      .setRequired(false)
-      .setDeprecatedSince("8.4")
-      .setDescription("ID of the quality gate to rename. This parameter is deprecated. Use 'currentName' instead.")
-      .setExampleValue(UUID_EXAMPLE_01);
-
     action.createParam(PARAM_CURRENT_NAME)
-      .setRequired(false)
+      .setRequired(true)
       .setMaximumLength(NAME_MAXIMUM_LENGTH)
       .setSince("8.4")
       .setDescription("Current name of the quality gate")
@@ -80,19 +73,14 @@ public class RenameAction implements QualityGatesWsAction {
 
   @Override
   public void handle(Request request, Response response) {
-    String uuid = request.param(PARAM_ID);
-    String currentName = request.param(PARAM_CURRENT_NAME);
-
-    checkArgument(uuid != null ^ currentName != null, "One of 'id' or 'currentName' must be provided, and not both");
+    String currentName = request.mandatoryParam(PARAM_CURRENT_NAME);
 
     try (DbSession dbSession = dbClient.openSession(false)) {
 
       QualityGateDto qualityGate;
-      if (uuid != null) {
-        qualityGate = wsSupport.getByUuid(dbSession, uuid);
-      } else {
-        qualityGate = wsSupport.getByName(dbSession, currentName);
-      }
+
+      qualityGate = wsSupport.getByName(dbSession, currentName);
+
       QualityGateDto renamedQualityGate = rename(dbSession, qualityGate, request.mandatoryParam(PARAM_NAME));
       writeProtobuf(QualityGate.newBuilder()
         .setId(renamedQualityGate.getUuid())
index 19dd5487ba320920d7bdca33aea82c7d8f251997..f452f7f09e7f15ae397b17a080746ddfb05b30b2 100644 (file)
@@ -37,13 +37,10 @@ import org.sonar.db.qualitygate.QualityGateDto;
 import org.sonar.server.user.UserSession;
 import org.sonarqube.ws.Qualitygates;
 
-import static com.google.common.base.Preconditions.checkArgument;
 import static org.sonar.api.server.ws.WebService.Param.SELECTED;
 import static org.sonar.api.utils.Paging.forPageIndex;
-import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
 import static org.sonar.db.qualitygate.ProjectQgateAssociationQuery.ANY;
 import static org.sonar.server.qualitygate.ws.CreateAction.NAME_MAXIMUM_LENGTH;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_ID;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_NAME;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_PAGE;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_PAGE_SIZE;
@@ -70,6 +67,7 @@ public class SearchAction implements QualityGatesWsAction {
       .setSince("4.3")
       .setResponseExample(Resources.getResource(this.getClass(), "search-example.json"))
       .setChangelog(
+        new Change("10.0", "Parameter 'gateId' is removed. Use 'gateName' instead."),
         new Change("8.4", "Parameter 'gateName' added"),
         new Change("8.4", "Parameter 'gateId' is deprecated. Format changes from integer to string. Use 'gateName' instead."),
         new Change("7.9", "New field 'paging' in response"),
@@ -77,15 +75,9 @@ public class SearchAction implements QualityGatesWsAction {
         new Change("7.9", "Field 'more' is deprecated in the response"))
       .setHandler(this);
 
-    action.createParam(PARAM_GATE_ID)
-      .setDescription("Quality Gate ID. This parameter is deprecated. Use 'gateName' instead.")
-      .setRequired(false)
-      .setDeprecatedSince("8.4")
-      .setExampleValue(UUID_EXAMPLE_01);
-
     action.createParam(PARAM_GATE_NAME)
       .setDescription("Quality Gate name")
-      .setRequired(false)
+      .setRequired(true)
       .setMaximumLength(NAME_MAXIMUM_LENGTH)
       .setSince("8.4")
       .setExampleValue("SonarSource Way");
@@ -110,17 +102,12 @@ public class SearchAction implements QualityGatesWsAction {
   public void handle(Request request, Response response) {
     try (DbSession dbSession = dbClient.openSession(false)) {
 
-      String gateUuid = request.param(PARAM_GATE_ID);
-      String gateName = request.param(PARAM_GATE_NAME);
+      String gateName = request.mandatoryParam(PARAM_GATE_NAME);
 
-      checkArgument(gateName != null ^ gateUuid != null, "One of 'gateId' or 'gateName' must be provided, and not both");
 
       QualityGateDto qualityGate;
-      if (gateUuid != null) {
-        qualityGate = wsSupport.getByUuid(dbSession, gateUuid);
-      } else {
-        qualityGate = wsSupport.getByName(dbSession, gateName);
-      }
+
+      qualityGate = wsSupport.getByName(dbSession, gateName);
 
       ProjectQgateAssociationQuery projectQgateAssociationQuery = ProjectQgateAssociationQuery.builder()
         .qualityGate(qualityGate)
index 0b65a2d20c96e479ceb7bb055ab85f27fce0c006..65189d24ce8a2a41b87e3603141f8490b193ed7c 100644 (file)
@@ -28,11 +28,8 @@ import org.sonar.db.DbSession;
 import org.sonar.db.project.ProjectDto;
 import org.sonar.db.qualitygate.QualityGateDto;
 
-import static com.google.common.base.Preconditions.checkArgument;
-import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
 import static org.sonar.server.qualitygate.ws.CreateAction.NAME_MAXIMUM_LENGTH;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.ACTION_SELECT;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_ID;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_NAME;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_PROJECT_KEY;
 import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
@@ -59,18 +56,13 @@ public class SelectAction implements QualityGatesWsAction {
       .setSince("4.3")
       .setHandler(this)
       .setChangelog(
+        new Change("10.0", "Parameter 'gateId' is removed. Use 'gateName' instead."),
         new Change("8.4", "Parameter 'gateName' added"),
         new Change("8.4", "Parameter 'gateId' is deprecated. Format changes from integer to string. Use 'gateName' instead."),
         new Change("8.3", "The parameter 'projectId' was removed"));
 
-    action.createParam(PARAM_GATE_ID)
-      .setDescription("Quality gate ID. This parameter is deprecated. Use 'gateName' instead.")
-      .setRequired(false)
-      .setDeprecatedSince("8.4")
-      .setExampleValue(UUID_EXAMPLE_01);
-
     action.createParam(PARAM_GATE_NAME)
-      .setRequired(false)
+      .setRequired(true)
       .setDescription("Name of the quality gate")
       .setMaximumLength(NAME_MAXIMUM_LENGTH)
       .setSince("8.4")
@@ -85,19 +77,13 @@ public class SelectAction implements QualityGatesWsAction {
 
   @Override
   public void handle(Request request, Response response) {
-    String gateUuid = request.param(PARAM_GATE_ID);
-    String gateName = request.param(PARAM_GATE_NAME);
+    String gateName = request.mandatoryParam(PARAM_GATE_NAME);
     String projectKey = request.mandatoryParam(PARAM_PROJECT_KEY);
 
-    checkArgument(gateName != null ^ gateUuid != null, "Either 'gateId' or 'gateName' must be provided, and not both");
 
     try (DbSession dbSession = dbClient.openSession(false)) {
       QualityGateDto qualityGate;
-      if (gateUuid != null) {
-        qualityGate = wsSupport.getByUuid(dbSession, gateUuid);
-      } else {
-        qualityGate = wsSupport.getByName(dbSession, gateName);
-      }
+      qualityGate = wsSupport.getByName(dbSession, gateName);
       ProjectDto project = wsSupport.getProject(dbSession, projectKey);
       wsSupport.checkCanAdminProject(project);
 
index d33e537456c7d2d82015a903fc3f4fd2c22e4612..fc27433952b37c07e04609d7288fc288005e9279 100644 (file)
@@ -29,11 +29,8 @@ import org.sonar.db.property.PropertyDto;
 import org.sonar.db.qualitygate.QualityGateDto;
 import org.sonar.server.user.UserSession;
 
-import static com.google.common.base.Preconditions.checkArgument;
-import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
 import static org.sonar.server.qualitygate.ws.CreateAction.NAME_MAXIMUM_LENGTH;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ID;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
 
 public class SetAsDefaultAction implements QualityGatesWsAction {
@@ -56,20 +53,15 @@ public class SetAsDefaultAction implements QualityGatesWsAction {
         "Either 'id' or 'name' must be specified. Requires the 'Administer Quality Gates' permission.")
       .setSince("4.3")
       .setChangelog(
+        new Change("10.0", "Parameter 'id' is removed. Use 'name' instead."),
         new Change("8.4", "Parameter 'name' added"),
         new Change("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'name' instead."))
       .setPost(true)
       .setHandler(this);
 
-    action.createParam(PARAM_ID)
-      .setDescription("ID of the quality gate to set as default. This parameter is deprecated. Use 'name' instead.")
-      .setDeprecatedSince("8.4")
-      .setRequired(false)
-      .setExampleValue(UUID_EXAMPLE_01);
-
     action.createParam(PARAM_NAME)
       .setDescription("Name of the quality gate to set as default")
-      .setRequired(false)
+      .setRequired(true)
       .setMaximumLength(NAME_MAXIMUM_LENGTH)
       .setSince("8.4")
       .setExampleValue("SonarSource Way");
@@ -77,19 +69,14 @@ public class SetAsDefaultAction implements QualityGatesWsAction {
 
   @Override
   public void handle(Request request, Response response) {
-    String uuid = request.param(PARAM_ID);
-    String name = request.param(PARAM_NAME);
-    checkArgument(name != null ^ uuid != null, "One of 'id' or 'name' must be provided, and not both");
+    String name = request.mandatoryParam(PARAM_NAME);
 
     try (DbSession dbSession = dbClient.openSession(false)) {
       userSession.checkPermission(ADMINISTER_QUALITY_GATES);
       QualityGateDto qualityGate;
 
-      if (uuid != null) {
-        qualityGate = wsSupport.getByUuid(dbSession, uuid);
-      } else {
-        qualityGate = wsSupport.getByName(dbSession, name);
-      }
+      qualityGate = wsSupport.getByName(dbSession, name);
+
       dbClient.propertiesDao().saveProperty(new PropertyDto().setKey(DEFAULT_QUALITY_GATE_PROPERTY_NAME).setValue(qualityGate.getUuid()));
       dbSession.commit();
     }
index 07bc8fa3321dc44e927df2ad115e675db09c2746..361b793ad1ed96e48efd2f9d5b03ab706c017cb6 100644 (file)
@@ -24,7 +24,6 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 import java.util.function.Function;
-import javax.annotation.Nullable;
 import org.sonar.api.server.ws.Change;
 import org.sonar.api.server.ws.Request;
 import org.sonar.api.server.ws.Response;
@@ -39,14 +38,11 @@ import org.sonar.server.qualitygate.QualityGateCaycStatus;
 import org.sonar.server.qualitygate.QualityGateFinder;
 import org.sonarqube.ws.Qualitygates.ShowWsResponse;
 
-import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkState;
 import static java.util.Optional.ofNullable;
-import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
 import static org.sonar.core.util.stream.MoreCollectors.toList;
 import static org.sonar.core.util.stream.MoreCollectors.toSet;
 import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ID;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
 import static org.sonar.server.ws.WsUtils.writeProtobuf;
 
@@ -72,6 +68,7 @@ public class ShowAction implements QualityGatesWsAction {
       .setSince("4.3")
       .setResponseExample(Resources.getResource(this.getClass(), "show-example.json"))
       .setChangelog(
+        new Change("10.0", "Parameter 'id' is removed. Use 'name' instead."),
         new Change("9.9", "'caycStatus' field is added to the response"),
         new Change("8.4", "Parameter 'id' is deprecated. Format changes from integer to string. Use 'name' instead."),
         new Change("8.4", "Field 'id' in the response is deprecated."),
@@ -80,23 +77,18 @@ public class ShowAction implements QualityGatesWsAction {
         new Change("7.0", "'actions' field is added in the response"))
       .setHandler(this);
 
-    action.createParam(PARAM_ID)
-      .setDescription("ID of the quality gate. Either id or name must be set")
-      .setExampleValue(UUID_EXAMPLE_01);
-
     action.createParam(PARAM_NAME)
+      .setRequired(true)
       .setDescription("Name of the quality gate. Either id or name must be set")
       .setExampleValue("My Quality Gate");
   }
 
   @Override
   public void handle(Request request, Response response) {
-    String id = request.param(PARAM_ID);
-    String name = request.param(PARAM_NAME);
-    checkOneOfIdOrNamePresent(id, name);
+    String name = request.mandatoryParam(PARAM_NAME);
 
     try (DbSession dbSession = dbClient.openSession(false)) {
-      QualityGateDto qualityGate = getByNameOrUuid(dbSession, name, id);
+      QualityGateDto qualityGate = wsSupport.getByName(dbSession, name);
       Collection<QualityGateConditionDto> conditions = getConditions(dbSession, qualityGate);
       Map<String, MetricDto> metricsByUuid = getMetricsByUuid(dbSession, conditions);
       QualityGateDto defaultQualityGate = qualityGateFinder.getDefault(dbSession);
@@ -105,16 +97,6 @@ public class ShowAction implements QualityGatesWsAction {
     }
   }
 
-  private QualityGateDto getByNameOrUuid(DbSession dbSession, @Nullable String name, @Nullable String uuid) {
-    if (name != null) {
-      return wsSupport.getByName(dbSession, name);
-    }
-    if (uuid != null) {
-      return wsSupport.getByUuid(dbSession, uuid);
-    }
-    throw new IllegalArgumentException("No parameter has been set to identify a quality gate");
-  }
-
   public Collection<QualityGateConditionDto> getConditions(DbSession dbSession, QualityGateDto qualityGate) {
     return dbClient.gateConditionDao().selectForQualityGate(dbSession, qualityGate.getUuid());
   }
@@ -152,7 +134,4 @@ public class ShowAction implements QualityGatesWsAction {
     };
   }
 
-  private static void checkOneOfIdOrNamePresent(@Nullable String qGateUuid, @Nullable String qGateName) {
-    checkArgument(qGateUuid == null ^ qGateName == null, "Either '%s' or '%s' must be provided", PARAM_ID, PARAM_NAME);
-  }
 }
index d7d2b497ddc937103708635a94be1dd3516b59ac..df72252eaf30a6054b8c55889284d34dfc36dce7 100644 (file)
@@ -50,8 +50,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.AssertionsForClassTypes.tuple;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_PROFILES;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ID;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
+import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_SOURCE_NAME;
 
 @RunWith(DataProviderRunner.class)
 public class CopyActionTest {
@@ -82,8 +82,7 @@ public class CopyActionTest {
     assertThat(action.params())
       .extracting(WebService.Param::key, WebService.Param::isRequired)
       .containsExactlyInAnyOrder(
-        tuple("id", false),
-        tuple("sourceName", false),
+        tuple("sourceName", true),
         tuple("name", true));
   }
 
@@ -96,7 +95,7 @@ public class CopyActionTest {
     QualityGateConditionDto condition = db.qualityGates().addCondition(qualityGate, metric);
 
     ws.newRequest()
-      .setParam(PARAM_ID, qualityGate.getUuid())
+      .setParam(PARAM_SOURCE_NAME, qualityGate.getName())
       .setParam(PARAM_NAME, "new-name")
       .execute();
 
@@ -117,7 +116,7 @@ public class CopyActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate(qualityGateDto -> qualityGateDto.setBuiltIn(true));
 
     ws.newRequest()
-      .setParam(PARAM_ID, qualityGate.getUuid())
+      .setParam(PARAM_SOURCE_NAME, qualityGate.getName())
       .setParam(PARAM_NAME, "new-name")
       .execute();
 
@@ -132,7 +131,7 @@ public class CopyActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
 
     QualityGate response = ws.newRequest()
-      .setParam(PARAM_ID, qualityGate.getUuid())
+      .setParam(PARAM_SOURCE_NAME, qualityGate.getName())
       .setParam(PARAM_NAME, "new-name")
       .executeProtobuf(QualityGate.class);
 
@@ -148,33 +147,33 @@ public class CopyActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_ID, qualityGate.getUuid())
+      .setParam(PARAM_SOURCE_NAME, qualityGate.getName())
       .setParam(PARAM_NAME, "new-name")
       .execute())
       .isInstanceOf(ForbiddenException.class);
   }
 
   @Test
-  public void fail_when_id_parameter_is_missing() {
+  public void fail_when_source_name_parameter_is_missing() {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     assertThatThrownBy(() -> ws.newRequest()
       .setParam(PARAM_NAME, "new-name")
       .execute())
       .isInstanceOf(IllegalArgumentException.class)
-      .hasMessageContaining("Either 'id' or 'sourceName' must be provided, and not both");
+      .hasMessageContaining("The 'sourceName' parameter is missing");
   }
 
   @Test
-  public void fail_when_quality_gate_id_is_not_found() {
+  public void fail_when_quality_gate_name_is_not_found() {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_ID, "123")
+      .setParam(PARAM_SOURCE_NAME, "unknown")
       .setParam(PARAM_NAME, "new-name")
       .execute())
       .isInstanceOf(NotFoundException.class)
-      .hasMessageContaining("No quality gate has been found for id 123");
+      .hasMessageContaining("No quality gate has been found for name unknown");
   }
 
   @Test
@@ -184,7 +183,7 @@ public class CopyActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
 
     TestRequest request = ws.newRequest()
-      .setParam(PARAM_ID, qualityGate.getUuid());
+      .setParam(PARAM_SOURCE_NAME, qualityGate.getName());
     ofNullable(nameParameter).ifPresent(t -> request.setParam(PARAM_NAME, t));
 
     assertThatThrownBy(() -> request.execute())
@@ -208,7 +207,7 @@ public class CopyActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_ID, qualityGate.getUuid())
+      .setParam(PARAM_SOURCE_NAME, qualityGate.getName())
       .setParam(PARAM_NAME, existingQualityGate.getName())
       .execute())
       .isInstanceOf(IllegalArgumentException.class)
index a7b880a9c82474c5bd04aefcf96524747b515d83..31b16fcd833b768204b5a43a8f123c9ca1f6a95e 100644 (file)
@@ -82,7 +82,6 @@ public class CreateActionTest {
     CreateResponse response = executeRequest(qgName);
 
     assertThat(response.getName()).isEqualTo(qgName);
-    assertThat(response.getId()).isNotNull();
     dbSession.commit();
 
     QualityGateDto qualityGateDto = dbClient.qualityGateDao().selectByName(dbSession, qgName);
index 18a1fca2a7f51c64d90ae6967a82cf28ef3b8570..b2d9c84031fc8c67dcd0b7d4210a4ad566127eb9 100644 (file)
@@ -51,7 +51,7 @@ import static org.assertj.core.api.Assertions.tuple;
 import static org.sonar.api.measures.Metric.ValueType.INT;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ERROR;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_ID;
+import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_NAME;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_METRIC;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_OPERATOR;
 
@@ -79,7 +79,7 @@ public class CreateConditionActionTest {
     MetricDto metric = insertMetric();
 
     ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, "LT")
       .setParam(PARAM_ERROR, "90")
@@ -95,7 +95,7 @@ public class CreateConditionActionTest {
     MetricDto metric = insertMetric();
 
     ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, "LT")
       .setParam(PARAM_ERROR, "90")
@@ -111,7 +111,7 @@ public class CreateConditionActionTest {
     MetricDto metric = insertMetric();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, "LT")
       .setParam(PARAM_ERROR, "90")
@@ -127,7 +127,7 @@ public class CreateConditionActionTest {
     MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name()).setHidden(false).setDirection(0));
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, "ABC")
       .setParam(PARAM_ERROR, "90")
@@ -144,7 +144,7 @@ public class CreateConditionActionTest {
     MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name()).setHidden(false).setDirection(direction));
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, operator)
       .setParam(PARAM_ERROR, "90")
@@ -160,7 +160,7 @@ public class CreateConditionActionTest {
     MetricDto metric = insertMetric();
 
     CreateConditionResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, "LT")
       .setParam(PARAM_ERROR, "45")
@@ -182,7 +182,7 @@ public class CreateConditionActionTest {
     userSession.logIn(user);
 
     TestResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, "LT")
       .setParam(PARAM_ERROR, "90")
@@ -201,7 +201,7 @@ public class CreateConditionActionTest {
     userSession.logIn(user).setGroups(group);
 
     TestResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, "LT")
       .setParam(PARAM_ERROR, "90")
@@ -217,7 +217,7 @@ public class CreateConditionActionTest {
     userSession.logIn();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_GATE_ID, qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam(PARAM_METRIC, metric.getKey())
       .setParam(PARAM_OPERATOR, "LT")
       .setParam(PARAM_ERROR, "90")
@@ -236,8 +236,7 @@ public class CreateConditionActionTest {
     assertThat(action.params())
       .extracting(WebService.Param::key, WebService.Param::isRequired)
       .containsExactlyInAnyOrder(
-        tuple("gateId", false),
-        tuple("gateName", false),
+        tuple("gateName", true),
         tuple("metric", true),
         tuple("error", true),
         tuple("op", false));
index 251b35b9f9b184c90ecca4e7cd0589ca6819b8bb..03a5bdecfcf69a0012ae4c765a7cd920f4e792d3 100644 (file)
@@ -40,7 +40,6 @@ import org.sonar.server.ws.WsActionTester;
 
 import static java.lang.String.format;
 import static java.lang.String.valueOf;
-import static org.apache.commons.lang.StringUtils.EMPTY;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.Assertions.tuple;
@@ -48,7 +47,7 @@ import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_PROFILES;
 import static org.sonar.db.qualitygate.SearchQualityGatePermissionQuery.builder;
 import static org.sonar.db.user.SearchPermissionQuery.IN;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_ID;
+import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
 
 public class DestroyActionTest {
 
@@ -72,7 +71,7 @@ public class DestroyActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     ws.newRequest()
-      .setParam(PARAM_ID, qualityGate.getUuid())
+      .setParam(PARAM_NAME, qualityGate.getName())
       .execute();
 
     assertThat(db.getDbClient().qualityGateDao().selectByUuid(dbSession, qualityGate.getUuid())).isNull();
@@ -85,7 +84,7 @@ public class DestroyActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     ws.newRequest()
-      .setParam(PARAM_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_NAME, qualityGate.getName())
       .execute();
 
     assertThat(db.getDbClient().qualityGateDao().selectByUuid(dbSession, qualityGate.getUuid())).isNull();
@@ -102,7 +101,7 @@ public class DestroyActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     ws.newRequest()
-      .setParam(PARAM_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_NAME, qualityGate.getName())
       .execute();
 
     assertThat(db.getDbClient().projectQgateAssociationDao().selectQGateUuidByProjectUuid(dbSession, prj1.getUuid()))
@@ -128,7 +127,7 @@ public class DestroyActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     ws.newRequest()
-      .setParam(PARAM_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_NAME, qualityGate.getName())
       .execute();
 
     assertThat(db.getDbClient().qualityGateGroupPermissionsDao().selectByQuery(dbSession, builder()
@@ -150,7 +149,7 @@ public class DestroyActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     ws.newRequest()
-      .setParam(PARAM_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_NAME, qualityGate.getName())
       .execute();
 
     assertThat(db.getDbClient().qualityGateUserPermissionDao().selectByQuery(dbSession, builder()
@@ -168,20 +167,19 @@ public class DestroyActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_ID, valueOf(builtInQualityGate.getUuid()))
+      .setParam(PARAM_NAME, valueOf(builtInQualityGate.getName()))
       .execute())
       .isInstanceOf(IllegalArgumentException.class)
       .hasMessageContaining(format("Operation forbidden for built-in Quality Gate '%s'", builtInQualityGate.getName()));
   }
 
   @Test
-  public void fail_when_missing_id() {
+  public void fail_when_missing_name() {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_ID, EMPTY)
       .execute())
-      .isInstanceOf(NotFoundException.class);
+      .isInstanceOf(IllegalArgumentException.class);
   }
 
   @Test
@@ -190,7 +188,7 @@ public class DestroyActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_ID, valueOf(defaultQualityGate.getUuid()))
+      .setParam(PARAM_NAME, valueOf(defaultQualityGate.getName()))
       .execute())
       .isInstanceOf(IllegalArgumentException.class)
       .hasMessageContaining("The default quality gate cannot be removed");
@@ -201,7 +199,7 @@ public class DestroyActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_ID, "123")
+      .setParam(PARAM_NAME, "unknown")
       .execute())
       .isInstanceOf(NotFoundException.class);
   }
@@ -213,7 +211,7 @@ public class DestroyActionTest {
     userSession.logIn("john").addPermission(ADMINISTER_QUALITY_PROFILES);
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_ID, qualityGate.getUuid())
+      .setParam(PARAM_NAME, qualityGate.getName())
       .execute())
       .isInstanceOf(ForbiddenException.class);
   }
@@ -228,8 +226,7 @@ public class DestroyActionTest {
     assertThat(action.params())
       .extracting(WebService.Param::key, WebService.Param::isRequired)
       .containsExactlyInAnyOrder(
-        tuple("id", false),
-        tuple("name", false));
+        tuple("name", true));
   }
 
 }
index 2ec6f41f56abb7ad24c929869d266fb9dccc07a3..54090ce3135108a5a559eee1fe9803abe2faf5b8 100644 (file)
@@ -38,6 +38,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.AssertionsForClassTypes.tuple;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_PROFILES;
+import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_CURRENT_NAME;
+import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
 
 public class RenameActionTest {
 
@@ -58,9 +60,8 @@ public class RenameActionTest {
     assertThat(action.params())
       .extracting(WebService.Param::key, WebService.Param::isRequired)
       .containsExactlyInAnyOrder(
-        tuple("id", false),
-        tuple("currentName", false),
-        tuple("name", true));
+        tuple(PARAM_CURRENT_NAME, true),
+        tuple(PARAM_NAME, true));
   }
 
   @Test
@@ -69,8 +70,8 @@ public class RenameActionTest {
     userSession.logIn("john").addPermission(ADMINISTER_QUALITY_GATES);
 
     ws.newRequest()
-      .setParam("id", qualityGate.getUuid())
-      .setParam("name", "new name")
+      .setParam(PARAM_CURRENT_NAME, qualityGate.getName())
+      .setParam(PARAM_NAME, "new name")
       .execute();
 
     assertThat(db.getDbClient().qualityGateDao().selectByUuid(db.getSession(), qualityGate.getUuid()).getName()).isEqualTo("new name");
@@ -82,8 +83,8 @@ public class RenameActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate(qg -> qg.setName("old name"));
 
     QualityGate result = ws.newRequest()
-      .setParam("id", qualityGate.getUuid())
-      .setParam("name", "new name")
+      .setParam(PARAM_CURRENT_NAME, qualityGate.getName())
+      .setParam(PARAM_NAME, "new name")
       .executeProtobuf(QualityGate.class);
 
     assertThat(result.getId()).isEqualTo(qualityGate.getUuid());
@@ -93,14 +94,14 @@ public class RenameActionTest {
   @Test
   public void rename_with_same_name() {
     userSession.logIn("john").addPermission(ADMINISTER_QUALITY_GATES);
-    QualityGateDto qualityGate = db.qualityGates().insertQualityGate(qg -> qg.setName("name"));
+    QualityGateDto qualityGate = db.qualityGates().insertQualityGate(qg -> qg.setName(PARAM_NAME));
 
     ws.newRequest()
-      .setParam("id", qualityGate.getUuid())
-      .setParam("name", "name")
+      .setParam(PARAM_CURRENT_NAME, qualityGate.getName())
+      .setParam(PARAM_NAME, "name")
       .execute();
 
-    assertThat(db.getDbClient().qualityGateDao().selectByUuid(db.getSession(), qualityGate.getUuid()).getName()).isEqualTo("name");
+    assertThat(db.getDbClient().qualityGateDao().selectByUuid(db.getSession(), qualityGate.getUuid()).getName()).isEqualTo(PARAM_NAME);
   }
 
   @Test
@@ -109,8 +110,8 @@ public class RenameActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate(qg -> qg.setBuiltIn(true));
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("id", qualityGate.getUuid())
-      .setParam("name", "name")
+      .setParam(PARAM_CURRENT_NAME, qualityGate.getName())
+      .setParam(PARAM_NAME, "name")
       .execute())
       .isInstanceOf(IllegalArgumentException.class)
       .hasMessageContaining(format("Operation forbidden for built-in Quality Gate '%s'", qualityGate.getName()));
@@ -122,8 +123,8 @@ public class RenameActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("id", qualityGate.getUuid())
-      .setParam("name", "")
+      .setParam(PARAM_CURRENT_NAME, qualityGate.getName())
+      .setParam(PARAM_NAME, "")
       .execute())
       .isInstanceOf(IllegalArgumentException.class)
       .hasMessageContaining("The 'name' parameter is missing");
@@ -136,8 +137,8 @@ public class RenameActionTest {
     QualityGateDto qualityGate2 = db.qualityGates().insertQualityGate();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("id", qualityGate1.getUuid())
-      .setParam("name", qualityGate2.getName())
+      .setParam(PARAM_CURRENT_NAME, qualityGate1.getName())
+      .setParam(PARAM_NAME, qualityGate2.getName())
       .execute())
       .isInstanceOf(IllegalArgumentException.class)
       .hasMessageContaining(format("Name '%s' has already been taken", qualityGate2.getName()));
@@ -148,8 +149,8 @@ public class RenameActionTest {
     userSession.logIn("john").addPermission(ADMINISTER_QUALITY_GATES);
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("id", "123")
-      .setParam("name", "new name")
+      .setParam(PARAM_CURRENT_NAME, "unknown")
+      .setParam(PARAM_NAME, "new name")
       .execute())
       .isInstanceOf(NotFoundException.class);
   }
@@ -160,8 +161,8 @@ public class RenameActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate(qg -> qg.setName("old name"));
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("id", qualityGate.getUuid())
-      .setParam("name", "new name")
+      .setParam(PARAM_CURRENT_NAME, qualityGate.getName())
+      .setParam(PARAM_NAME, "new name")
       .execute())
       .isInstanceOf(ForbiddenException.class);
   }
index ad66a9277f2206a312555fd87064f2dbcc10373a..cd6e2588353ab6b901e0bf507d67054e9243648a 100644 (file)
@@ -44,7 +44,7 @@ import static org.sonar.api.server.ws.WebService.SelectionMode.DESELECTED;
 import static org.sonar.api.server.ws.WebService.SelectionMode.SELECTED;
 import static org.sonar.api.web.UserRole.USER;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
-import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_ID;
+import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_NAME;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_PAGE;
 import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_PAGE_SIZE;
 import static org.sonarqube.ws.client.user.UsersWsParameters.PARAM_SELECTED;
@@ -70,7 +70,7 @@ public class SearchActionTest {
     db.qualityGates().associateProjectToQualityGate(db.components().getProjectDto(project), qualityGate);
 
     SearchResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .executeProtobuf(SearchResponse.class);
 
     assertThat(response.getResultsList())
@@ -83,7 +83,7 @@ public class SearchActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
 
     SearchResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .executeProtobuf(SearchResponse.class);
 
     assertThat(response.getResultsList()).isEmpty();
@@ -97,7 +97,7 @@ public class SearchActionTest {
     db.qualityGates().associateProjectToQualityGate(associatedProject, qualityGate);
 
     SearchResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, ALL.value())
       .executeProtobuf(SearchResponse.class);
 
@@ -116,7 +116,7 @@ public class SearchActionTest {
     db.qualityGates().associateProjectToQualityGate(associatedProject, qualityGate);
 
     SearchResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, SELECTED.value())
       .executeProtobuf(SearchResponse.class);
 
@@ -134,7 +134,7 @@ public class SearchActionTest {
     db.qualityGates().associateProjectToQualityGate(associatedProject, qualityGate);
 
     SearchResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, DESELECTED.value())
       .executeProtobuf(SearchResponse.class);
 
@@ -155,7 +155,7 @@ public class SearchActionTest {
     userSession.logIn(user);
 
     SearchResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, ALL.value())
       .executeProtobuf(SearchResponse.class);
 
@@ -175,7 +175,7 @@ public class SearchActionTest {
 
     // Return partial result on first page
     assertThat(ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, ALL.value())
       .setParam(PARAM_PAGE, "1")
       .setParam(PARAM_PAGE_SIZE, "1")
@@ -186,7 +186,7 @@ public class SearchActionTest {
 
     // Return partial result on second page
     assertThat(ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, ALL.value())
       .setParam(PARAM_PAGE, "2")
       .setParam(PARAM_PAGE_SIZE, "1")
@@ -197,7 +197,7 @@ public class SearchActionTest {
 
     // Return partial result on first page
     assertThat(ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, ALL.value())
       .setParam(PARAM_PAGE, "1")
       .setParam(PARAM_PAGE_SIZE, "2")
@@ -208,7 +208,7 @@ public class SearchActionTest {
 
     // Return all result on first page
     assertThat(ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, ALL.value())
       .setParam(PARAM_PAGE, "1")
       .setParam(PARAM_PAGE_SIZE, "3")
@@ -219,7 +219,7 @@ public class SearchActionTest {
 
     // Return no result as page index is off limit
     assertThat(ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_SELECTED, ALL.value())
       .setParam(PARAM_PAGE, "3")
       .setParam(PARAM_PAGE_SIZE, "3")
@@ -239,7 +239,7 @@ public class SearchActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     SearchResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_PAGE_SIZE, valueOf(5))
       .setParam(PARAM_PAGE, valueOf(2))
       .executeProtobuf(SearchResponse.class);
@@ -262,7 +262,7 @@ public class SearchActionTest {
     userSession.addPermission(ADMINISTER_QUALITY_GATES);
 
     SearchResponse response = ws.newRequest()
-      .setParam(PARAM_GATE_ID, valueOf(qualityGate.getUuid()))
+      .setParam(PARAM_GATE_NAME, valueOf(qualityGate.getName()))
       .setParam(PARAM_PAGE_SIZE, valueOf(100))
       .setParam(PARAM_PAGE, valueOf(1))
       .executeProtobuf(SearchResponse.class);
@@ -278,10 +278,10 @@ public class SearchActionTest {
   @Test
   public void fail_on_unknown_quality_gate() {
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam(PARAM_GATE_ID, "42")
+      .setParam(PARAM_GATE_NAME, "unknown")
       .executeProtobuf(SearchResponse.class))
       .isInstanceOf(NotFoundException.class)
-      .hasMessageContaining("No quality gate has been found for id 42");
+      .hasMessageContaining("No quality gate has been found for name unknown");
   }
 
   @Test
@@ -295,8 +295,7 @@ public class SearchActionTest {
     assertThat(action.params())
       .extracting(WebService.Param::key, WebService.Param::isRequired)
       .containsExactlyInAnyOrder(
-        tuple("gateId", false),
-        tuple("gateName", false),
+        tuple("gateName", true),
         tuple("query", false),
         tuple("selected", false),
         tuple("page", false),
index cf8970c248b4aafc0c0890f757c3dcc4caa70d9f..f1306bd31b6f96a02ed4bdf19631171bad6d7de1 100644 (file)
@@ -34,12 +34,12 @@ import org.sonar.server.exceptions.NotFoundException;
 import org.sonar.server.tester.UserSessionRule;
 import org.sonar.server.ws.WsActionTester;
 
-import static java.lang.String.format;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.sonar.api.web.UserRole.ADMIN;
 import static org.sonar.api.web.UserRole.ISSUE_ADMIN;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
+import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_GATE_NAME;
 
 public class SelectActionTest {
 
@@ -61,7 +61,7 @@ public class SelectActionTest {
     ComponentDto project = db.components().insertPrivateProject();
 
     ws.newRequest()
-      .setParam("gateId", qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute();
 
@@ -76,12 +76,12 @@ public class SelectActionTest {
     ComponentDto project = db.components().insertPrivateProject();
 
     ws.newRequest()
-      .setParam("gateId", initialQualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, initialQualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute();
 
     ws.newRequest()
-      .setParam("gateId", secondQualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, secondQualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute();
 
@@ -95,12 +95,12 @@ public class SelectActionTest {
     ComponentDto project = db.components().insertPrivateProject();
 
     ws.newRequest()
-      .setParam("gateId", initialQualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, initialQualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute();
 
     ws.newRequest()
-      .setParam("gateId", initialQualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, initialQualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute();
 
@@ -114,7 +114,7 @@ public class SelectActionTest {
     userSession.logIn().addProjectPermission(ADMIN, project);
 
     ws.newRequest()
-      .setParam("gateId", qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute();
 
@@ -128,7 +128,7 @@ public class SelectActionTest {
     ComponentDto project = db.components().insertPrivateProject();
 
     ws.newRequest()
-      .setParam("gateId", qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute();
 
@@ -141,7 +141,7 @@ public class SelectActionTest {
     ComponentDto project = db.components().insertPrivateProject();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("gateId", "1")
+      .setParam(PARAM_GATE_NAME, "unknown")
       .setParam("projectKey", project.getKey())
       .execute())
       .isInstanceOf(NotFoundException.class);
@@ -153,7 +153,7 @@ public class SelectActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("gateId", qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam("projectKey", "unknown")
       .execute())
       .isInstanceOf(NotFoundException.class);
@@ -166,7 +166,7 @@ public class SelectActionTest {
     userSession.anonymous();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("gateId", qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute())
       .isInstanceOf(ForbiddenException.class);
@@ -179,7 +179,7 @@ public class SelectActionTest {
     userSession.logIn().addProjectPermission(ISSUE_ADMIN, project);
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("gateId", qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute())
       .isInstanceOf(ForbiddenException.class);
@@ -192,7 +192,7 @@ public class SelectActionTest {
     userSession.logIn();
 
     assertThatThrownBy(() -> ws.newRequest()
-      .setParam("gateId", qualityGate.getUuid())
+      .setParam(PARAM_GATE_NAME, qualityGate.getName())
       .setParam("projectKey", project.getKey())
       .execute())
       .isInstanceOf(ForbiddenException.class);
index 6b9e01b0976d781a85a7522576cc75960794b4f8..88e1e42f2a5618410ca1000574f2eb20c6a0c3ff 100644 (file)
@@ -32,6 +32,7 @@ import org.sonar.server.ws.WsActionTester;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.AssertionsForClassTypes.tuple;
 import static org.sonar.db.permission.GlobalPermission.ADMINISTER_QUALITY_GATES;
+import static org.sonar.server.qualitygate.ws.QualityGatesWsParameters.PARAM_NAME;
 
 public class SetAsDefaultActionTest {
   @Rule
@@ -51,8 +52,7 @@ public class SetAsDefaultActionTest {
     assertThat(action.params())
       .extracting(WebService.Param::key, WebService.Param::isRequired)
       .containsExactlyInAnyOrder(
-        tuple("id", false),
-        tuple("name", false));
+        tuple("name", true));
   }
 
   @Test
@@ -61,7 +61,7 @@ public class SetAsDefaultActionTest {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate(qg -> qg.setName("name"));
 
     ws.newRequest()
-      .setParam("name", "name")
+      .setParam(PARAM_NAME, "name")
       .execute();
 
     assertThat(db.getDbClient().propertiesDao().selectGlobalProperty(db.getSession(), "qualitygate.default").getValue())
index 1e19d5ca3780299361608b46cc325796b187e7da..527a3560e7025891b9ce5701ce8d6b183808fb66 100644 (file)
@@ -127,7 +127,7 @@ public class ShowActionTest {
     db.qualityGates().setDefaultQualityGate(qualityGate);
 
     ShowWsResponse response = ws.newRequest()
-      .setParam("id", qualityGate.getUuid())
+      .setParam("name", qualityGate.getName())
       .executeProtobuf(ShowWsResponse.class);
 
     assertThat(response.getId()).isEqualTo(qualityGate.getUuid());
@@ -261,24 +261,12 @@ public class ShowActionTest {
   }
 
   @Test
-  public void fail_when_no_name_or_id() {
+  public void fail_when_no_name() {
     QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
 
     assertThatThrownBy(() -> ws.newRequest().execute())
       .isInstanceOf(IllegalArgumentException.class)
-      .hasMessageContaining("Either 'id' or 'name' must be provided");
-  }
-
-  @Test
-  public void fail_when_both_name_or_id() {
-    QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
-
-    assertThatThrownBy(() -> ws.newRequest()
-      .setParam("name", qualityGate.getName())
-      .setParam("id", qualityGate.getUuid())
-      .execute())
-      .isInstanceOf(IllegalArgumentException.class)
-      .hasMessageContaining("Either 'id' or 'name' must be provided");
+      .hasMessageContaining("The 'name' parameter is missing");
   }
 
   @Test
@@ -308,17 +296,6 @@ public class ShowActionTest {
       .hasMessageContaining("No quality gate has been found for name UNKNOWN");
   }
 
-  @Test
-  public void fail_when_quality_id_does_not_exist() {
-    QualityGateDto qualityGate = db.qualityGates().insertQualityGate();
-
-    assertThatThrownBy(() -> ws.newRequest()
-      .setParam("id", "123")
-      .execute())
-      .isInstanceOf(NotFoundException.class)
-      .hasMessageContaining("No quality gate has been found for id 123");
-  }
-
   @Test
   public void json_example() {
     userSession.logIn("admin").addPermission(ADMINISTER_QUALITY_GATES);
@@ -346,8 +323,7 @@ public class ShowActionTest {
     assertThat(action.params())
       .extracting(Param::key, Param::isRequired)
       .containsExactlyInAnyOrder(
-        tuple("id", false),
-        tuple("name", false));
+        tuple("name", true));
   }
 
 }
index cb6a7ec4bec73e0ee5cf34aec992141674dd7ba7..da2f8b0ff322d6e9c1129921f3d59582529cbeea 100644 (file)
@@ -30,20 +30,17 @@ import javax.annotation.Generated;
 @Generated("sonar-ws-generator")
 public class CopyRequest {
 
-  private String id;
+  private String sourceName;
   private String name;
 
-  /**
-   * This is a mandatory parameter.
-   * Example value: "1"
-   */
-  public CopyRequest setId(String id) {
-    this.id = id;
-    return this;
+
+  public String getSourceName() {
+    return sourceName;
   }
 
-  public String getId() {
-    return id;
+  public CopyRequest setSourceName(String sourceName) {
+    this.sourceName = sourceName;
+    return this;
   }
 
   /**
index e06150625c892b267ca934d4e1da559c66f64ebd..f59ea5158189f384029aed85ecae385dcd8e1b22 100644 (file)
@@ -31,7 +31,7 @@ import javax.annotation.Generated;
 public class CreateConditionRequest {
 
   private String error;
-  private String gateId;
+  private String gateName;
   private String metric;
   private String op;
 
@@ -51,13 +51,13 @@ public class CreateConditionRequest {
    * This is a mandatory parameter.
    * Example value: "1"
    */
-  public CreateConditionRequest setGateId(String gateId) {
-    this.gateId = gateId;
+  public CreateConditionRequest setGateName(String gateName) {
+    this.gateName = gateName;
     return this;
   }
 
-  public String getGateId() {
-    return gateId;
+  public String getGateName() {
+    return gateName;
   }
 
   /**
index ea1ce1b676930a787b8a4bf7117a5069fdf4ee5f..131baae6db03a464e51965be1df516255a2321e2 100644 (file)
@@ -30,18 +30,14 @@ import javax.annotation.Generated;
 @Generated("sonar-ws-generator")
 public class DestroyRequest {
 
-  private String id;
+  private String name;
 
-  /**
-   * This is a mandatory parameter.
-   * Example value: "1"
-   */
-  public DestroyRequest setId(String id) {
-    this.id = id;
-    return this;
+  public String getName() {
+    return name;
   }
 
-  public String getId() {
-    return id;
+  public DestroyRequest setName(String name) {
+    this.name = name;
+    return this;
   }
 }
index e26c72ced9c117a331654f1a9e2899f3836c101b..bfac20d898be76f3727b4afae9360e654974fee7 100644 (file)
@@ -133,7 +133,6 @@ public class QualityGatesServiceCreateResponseJsonParser implements Parser<Quali
     Qualitygates.CreateResponse.Builder builder = Qualitygates.CreateResponse.newBuilder();
     String json = readInputStream(input);
     JsonObject jobj = new Gson().fromJson(json, JsonObject.class);
-    builder.setId(jobj.get("id").getAsString());
     builder.setName(jobj.get("name").getAsString());
     return builder.build();
   }
index e187b0437c504b92fadd53b2318bdd46f19c04dc..49078e88b4d57de4159037274685ada1bddd3a66 100644 (file)
@@ -55,7 +55,7 @@ public class QualitygatesService extends BaseService {
   public void copy(CopyRequest request) {
     call(
       new PostRequest(path("copy"))
-        .setParam("id", request.getId())
+        .setParam("sourceName", request.getSourceName())
         .setParam("name", request.getName())
         .setMediaType(MediaTypes.JSON)).content();
   }
@@ -95,7 +95,7 @@ public class QualitygatesService extends BaseService {
     return call(
       new PostRequest(path("create_condition"))
         .setParam("error", request.getError())
-        .setParam("gateId", request.getGateId())
+        .setParam("gateName", request.getGateName())
         .setParam("metric", request.getMetric())
         .setParam("op", request.getOp()),
       CreateConditionResponse.parser());
@@ -140,7 +140,7 @@ public class QualitygatesService extends BaseService {
   public void destroy(DestroyRequest request) {
     call(
       new PostRequest(path("destroy"))
-        .setParam("id", request.getId())
+        .setParam("name", request.getName())
         .setMediaType(MediaTypes.JSON)).content();
   }
 
@@ -228,7 +228,7 @@ public class QualitygatesService extends BaseService {
   public SearchResponse search(SearchRequest request) {
     return call(
       new GetRequest(path("search"))
-        .setParam("gateId", request.getGateId())
+        .setParam("gateName", request.getGateName())
         .setParam("page", request.getPage())
         .setParam("pageSize", request.getPageSize())
         .setParam("query", request.getQuery())
@@ -246,8 +246,7 @@ public class QualitygatesService extends BaseService {
   public void select(SelectRequest request) {
     call(
       new PostRequest(path("select"))
-        .setParam("gateId", request.getGateId())
-        .setParam("projectId", request.getProjectId())
+        .setParam("gateName", request.getGateName())
         .setParam("projectKey", request.getProjectKey())
         .setMediaType(MediaTypes.JSON)).content();
   }
@@ -262,7 +261,7 @@ public class QualitygatesService extends BaseService {
   public void setAsDefault(SetAsDefaultRequest request) {
     call(
       new PostRequest(path("set_as_default"))
-        .setParam("id", request.getId())
+        .setParam("name", request.getName())
         .setMediaType(MediaTypes.JSON)).content();
   }
 
@@ -276,7 +275,6 @@ public class QualitygatesService extends BaseService {
   public ShowWsResponse show(ShowRequest request) {
     return call(
       new GetRequest(path("show"))
-        .setParam("id", request.getId())
         .setParam("name", request.getName()),
       ShowWsResponse.parser());
   }
index a8b2757c33a97b2cf8740c63fd1c5907789f186e..082740749be35798cf0451ad39c15749a10bc2fd 100644 (file)
@@ -30,7 +30,7 @@ import javax.annotation.Generated;
 @Generated("sonar-ws-generator")
 public class SearchRequest {
 
-  private String gateId;
+  private String gateName;
   private String page;
   private String pageSize;
   private String query;
@@ -40,13 +40,13 @@ public class SearchRequest {
    * This is a mandatory parameter.
    * Example value: "1"
    */
-  public SearchRequest setGateId(String gateId) {
-    this.gateId = gateId;
+  public SearchRequest setGateName(String gateName) {
+    this.gateName = gateName;
     return this;
   }
 
-  public String getGateId() {
-    return gateId;
+  public String getGateName() {
+    return gateName;
   }
 
   /**
index 5f592b5ee38a3965225fe2814341ef5c69c0789f..0ca13e4279dc8024cdcba3e2c2fea055b80faa6e 100644 (file)
@@ -30,33 +30,20 @@ import javax.annotation.Generated;
 @Generated("sonar-ws-generator")
 public class SelectRequest {
 
-  private String gateId;
-  private String projectId;
+  private String gateName;
   private String projectKey;
 
   /**
    * This is a mandatory parameter.
    * Example value: "1"
    */
-  public SelectRequest setGateId(String gateId) {
-    this.gateId = gateId;
+  public SelectRequest setGateName(String gateName) {
+    this.gateName = gateName;
     return this;
   }
 
-  public String getGateId() {
-    return gateId;
-  }
-
-  /**
-   * Example value: "AU-Tpxb--iU5OvuD2FLy"
-   */
-  public SelectRequest setProjectId(String projectId) {
-    this.projectId = projectId;
-    return this;
-  }
-
-  public String getProjectId() {
-    return projectId;
+  public String getGateName() {
+    return gateName;
   }
 
   /**
index 7d1406f63a239fbcf43cead2c879d6ad25165500..c9d0370a9c7a614d53207375adc37fd9b88d61f5 100644 (file)
@@ -30,18 +30,14 @@ import javax.annotation.Generated;
 @Generated("sonar-ws-generator")
 public class SetAsDefaultRequest {
 
-  private String id;
+  private String name;
 
-  /**
-   * This is a mandatory parameter.
-   * Example value: "1"
-   */
-  public SetAsDefaultRequest setId(String id) {
-    this.id = id;
-    return this;
+  public String getName() {
+    return name;
   }
 
-  public String getId() {
-    return id;
+  public SetAsDefaultRequest setName(String name) {
+    this.name = name;
+    return this;
   }
 }
index 9e31ec9a3255fd2f93b61e2c8e255aa41fbf0a78..ea62100fe6766af1310dbebd7977bedb010f79b7 100644 (file)
@@ -30,21 +30,8 @@ import javax.annotation.Generated;
 @Generated("sonar-ws-generator")
 public class ShowRequest {
 
-  private String id;
   private String name;
 
-  /**
-   * Example value: "1"
-   */
-  public ShowRequest setId(String id) {
-    this.id = id;
-    return this;
-  }
-
-  public String getId() {
-    return id;
-  }
-
   /**
    * Example value: "My Quality Gate"
    */
index b1e9f05226f8a132b84c04be18a0aafc20e918e5..8d137726d1ccff4acefa63808f55debd0ddd99fc 100644 (file)
@@ -104,7 +104,7 @@ message AppResponse {
 
 // POST api/qualitygates/create
 message CreateResponse {
-  optional string id = 1;
+  reserved 1; //drop id in web-api response
   optional string name = 2;
 }