aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-ws
diff options
context:
space:
mode:
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2017-09-06 12:28:04 +0200
committerStas Vilchik <stas.vilchik@sonarsource.com>2017-09-11 11:28:29 +0200
commit0926670e79d919e0afa3f0a2e11f656bdcd05916 (patch)
treefb2b9fbc78a38460fd914729b810afdbb8021cbb /sonar-ws
parent272dfe918009de0938fde9835961b37420808ffa (diff)
downloadsonarqube-0926670e79d919e0afa3f0a2e11f656bdcd05916.tar.gz
sonarqube-0926670e79d919e0afa3f0a2e11f656bdcd05916.zip
SONAR-9181 WS api/projects/bulk_delete accepts the sames parameters as api/projects/search
Diffstat (limited to 'sonar-ws')
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/BaseService.java5
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsService.java15
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/project/SearchWsRequest.java5
-rw-r--r--sonar-ws/src/test/java/org/sonarqube/ws/client/project/ProjectsServiceTest.java21
-rw-r--r--sonar-ws/src/test/java/org/sonarqube/ws/client/project/SearchWsRequestTest.java2
5 files changed, 32 insertions, 16 deletions
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/BaseService.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/BaseService.java
index edfd8c7339b..9d5f9e9ce39 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/BaseService.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/BaseService.java
@@ -19,7 +19,6 @@
*/
package org.sonarqube.ws.client;
-import com.google.common.base.Joiner;
import com.google.protobuf.Message;
import com.google.protobuf.Parser;
import java.io.InputStream;
@@ -34,8 +33,6 @@ import static com.google.common.base.Strings.isNullOrEmpty;
public abstract class BaseService {
- private static final Joiner MULTI_VALUES_JOINER = Joiner.on(",");
-
private final WsConnector wsConnector;
protected final String controller;
@@ -71,6 +68,6 @@ public abstract class BaseService {
@CheckForNull
protected static String inlineMultipleParamValue(@Nullable List<String> values) {
- return values == null ? null : MULTI_VALUES_JOINER.join(values);
+ return values == null ? null : String.join(",", values);
}
}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsService.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsService.java
index 6ebe8424074..11dc0c4495f 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsService.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsService.java
@@ -85,10 +85,15 @@ public class ProjectsService extends BaseService {
.setParam("project", request.getKey()));
}
- public void bulkDelete(BulkDeleteRequest request) {
+ public void bulkDelete(SearchWsRequest request) {
PostRequest post = new PostRequest(path("bulk_delete"))
- .setParam("organization", request.getOrganization())
- .setParam("projects", String.join(",", request.getProjectKeys()));
+ .setParam(PARAM_ORGANIZATION, request.getOrganization())
+ .setParam(PARAM_QUALIFIERS, inlineMultipleParamValue(request.getQualifiers()))
+ .setParam(PARAM_ANALYZED_BEFORE, request.getAnalyzedBefore())
+ .setParam(TEXT_QUERY, request.getQuery())
+ .setParam(PARAM_ON_PROVISIONED_ONLY, request.isOnProvisionedOnly())
+ .setParam(PARAM_PROJECTS, inlineMultipleParamValue(request.getProjects()))
+ .setParam(PARAM_PROJECT_IDS, inlineMultipleParamValue(request.getProjectIds()));
call(post);
}
@@ -121,8 +126,8 @@ public class ProjectsService extends BaseService {
.setParam(PAGE, request.getPage())
.setParam(PAGE_SIZE, request.getPageSize())
.setParam(PARAM_ON_PROVISIONED_ONLY, request.isOnProvisionedOnly())
- .setParam(PARAM_PROJECTS, request.getProjects())
- .setParam(PARAM_PROJECT_IDS, request.getProjectIds());
+ .setParam(PARAM_PROJECTS, inlineMultipleParamValue(request.getProjects()))
+ .setParam(PARAM_PROJECT_IDS, inlineMultipleParamValue(request.getProjectIds()));
return call(get, SearchWsResponse.parser());
}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/project/SearchWsRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/project/SearchWsRequest.java
index 422bb90f6d9..90544b37fc2 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/project/SearchWsRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/project/SearchWsRequest.java
@@ -19,12 +19,13 @@
*/
package org.sonarqube.ws.client.project;
-import java.util.ArrayList;
import java.util.List;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
+import org.sonar.api.resources.Qualifiers;
import static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Collections.singletonList;
import static java.util.Objects.requireNonNull;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.MAX_PAGE_SIZE;
@@ -108,7 +109,7 @@ public class SearchWsRequest {
public static class Builder {
private String organization;
- private List<String> qualifiers = new ArrayList<>();
+ private List<String> qualifiers = singletonList(Qualifiers.PROJECT);
private Integer page;
private Integer pageSize;
private String query;
diff --git a/sonar-ws/src/test/java/org/sonarqube/ws/client/project/ProjectsServiceTest.java b/sonar-ws/src/test/java/org/sonarqube/ws/client/project/ProjectsServiceTest.java
index f3727f38851..d1a094f3fcc 100644
--- a/sonar-ws/src/test/java/org/sonarqube/ws/client/project/ProjectsServiceTest.java
+++ b/sonar-ws/src/test/java/org/sonarqube/ws/client/project/ProjectsServiceTest.java
@@ -125,11 +125,24 @@ public class ProjectsServiceTest {
@Test
public void bulk_delete() {
- BulkDeleteRequest request = BulkDeleteRequest.builder().setProjectKeys(Arrays.asList("p1", "p2")).setOrganization("my-org").build();
- underTest.bulkDelete(request);
+ underTest.bulkDelete(SearchWsRequest.builder()
+ .setOrganization("default")
+ .setQuery("project")
+ .setQualifiers(asList("TRK", "VW"))
+ .setAnalyzedBefore("2017-09-01")
+ .setProjects(Arrays.asList("P1", "P2"))
+ .setOnProvisionedOnly(true)
+ .build());
- assertThat(serviceTester.getPostRequest().getPath()).isEqualTo("api/projects/bulk_delete");
- assertThat(serviceTester.getPostRequest().getParams()).containsOnly(entry("organization", "my-org"), entry("projects", "p1,p2"));
+ serviceTester.assertThat(serviceTester.getPostRequest())
+ .hasPath("bulk_delete")
+ .hasParam("organization", "default")
+ .hasParam("q", "project")
+ .hasParam("analyzedBefore", "2017-09-01")
+ .hasParam("qualifiers", "TRK,VW")
+ .hasParam("onProvisionedOnly", "true")
+ .hasParam("projects", "P1,P2")
+ .andNoOtherParam();
}
@Test
diff --git a/sonar-ws/src/test/java/org/sonarqube/ws/client/project/SearchWsRequestTest.java b/sonar-ws/src/test/java/org/sonarqube/ws/client/project/SearchWsRequestTest.java
index 121a6d5b075..bf0f455215d 100644
--- a/sonar-ws/src/test/java/org/sonarqube/ws/client/project/SearchWsRequestTest.java
+++ b/sonar-ws/src/test/java/org/sonarqube/ws/client/project/SearchWsRequestTest.java
@@ -50,7 +50,7 @@ public class SearchWsRequestTest {
}
@Test
- public void fail_when_page_size_is_greather_then_500() throws Exception {
+ public void fail_when_page_size_is_greater_then_500() throws Exception {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Page size must not be greater than 500");