@@ -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(); | |||
@@ -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); |
@@ -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() |
@@ -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"); |
@@ -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"; |
@@ -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()) |
@@ -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) |
@@ -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); | |||
@@ -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(); | |||
} |
@@ -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); | |||
} | |||
} |
@@ -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) |
@@ -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); |
@@ -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)); |
@@ -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)); | |||
} | |||
} |
@@ -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); | |||
} |
@@ -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), |
@@ -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); |
@@ -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()) |
@@ -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)); | |||
} | |||
} |
@@ -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; | |||
} | |||
/** |
@@ -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; | |||
} | |||
/** |
@@ -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; | |||
} | |||
} |
@@ -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(); | |||
} |
@@ -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()); | |||
} |
@@ -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; | |||
} | |||
/** |
@@ -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; | |||
} | |||
/** |
@@ -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; | |||
} | |||
} |
@@ -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" | |||
*/ |
@@ -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; | |||
} | |||