aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-ws/src/main
diff options
context:
space:
mode:
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2017-09-05 17:38:36 +0200
committerStas Vilchik <stas.vilchik@sonarsource.com>2017-09-11 11:28:29 +0200
commit2f84511c91478521a45a606cd13a703ff4de08f4 (patch)
tree35f4f6828a6f4597cf6d5bb65d1e2ba7da536c31 /sonar-ws/src/main
parente8eff068e1d16bb343c87d0c16580dcb43cc5add (diff)
downloadsonarqube-2f84511c91478521a45a606cd13a703ff4de08f4.tar.gz
sonarqube-2f84511c91478521a45a606cd13a703ff4de08f4.zip
SONAR-9181 WS api/projects/search search by component keys or uuids
Diffstat (limited to 'sonar-ws/src/main')
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsService.java6
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsWsParameters.java2
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/project/SearchWsRequest.java28
3 files changed, 35 insertions, 1 deletions
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 a3acd885cdf..6ebe8424074 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
@@ -44,7 +44,9 @@ import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_NAME;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_ON_PROVISIONED_ONLY;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_PROJECT;
+import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_PROJECTS;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_PROJECT_ID;
+import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_PROJECT_IDS;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_QUALIFIERS;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_TO;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.PARAM_VISIBILITY;
@@ -118,7 +120,9 @@ public class ProjectsService extends BaseService {
.setParam(TEXT_QUERY, request.getQuery())
.setParam(PAGE, request.getPage())
.setParam(PAGE_SIZE, request.getPageSize())
- .setParam(PARAM_ON_PROVISIONED_ONLY, request.isOnProvisionedOnly());
+ .setParam(PARAM_ON_PROVISIONED_ONLY, request.isOnProvisionedOnly())
+ .setParam(PARAM_PROJECTS, request.getProjects())
+ .setParam(PARAM_PROJECT_IDS, request.getProjectIds());
return call(get, SearchWsResponse.parser());
}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsWsParameters.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsWsParameters.java
index 131c6465645..c6a8bb1c326 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsWsParameters.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/project/ProjectsWsParameters.java
@@ -44,6 +44,8 @@ public class ProjectsWsParameters {
public static final String PARAM_VISIBILITY = "visibility";
public static final String PARAM_ANALYZED_BEFORE = "analyzedBefore";
public static final String PARAM_ON_PROVISIONED_ONLY = "onProvisionedOnly";
+ public static final String PARAM_PROJECT_IDS = "projectIds";
+ public static final String PARAM_PROJECTS = "projects";
public static final String FILTER_LANGUAGES = "languages";
public static final String FILTER_TAGS = "tags";
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 04d0e8d4fce..422bb90f6d9 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
@@ -38,6 +38,8 @@ public class SearchWsRequest {
private final Integer pageSize;
private final String analyzedBefore;
private final boolean onProvisionedOnly;
+ private final List<String> projects;
+ private final List<String> projectIds;
public SearchWsRequest(Builder builder) {
this.organization = builder.organization;
@@ -48,6 +50,8 @@ public class SearchWsRequest {
this.pageSize = builder.pageSize;
this.analyzedBefore = builder.analyzedBefore;
this.onProvisionedOnly = builder.onProvisionedOnly;
+ this.projects = builder.projects;
+ this.projectIds = builder.projectIds;
}
@CheckForNull
@@ -88,6 +92,16 @@ public class SearchWsRequest {
return onProvisionedOnly;
}
+ @CheckForNull
+ public List<String> getProjects() {
+ return projects;
+ }
+
+ @CheckForNull
+ public List<String> getProjectIds() {
+ return projectIds;
+ }
+
public static Builder builder() {
return new Builder();
}
@@ -101,6 +115,8 @@ public class SearchWsRequest {
private String visibility;
private String analyzedBefore;
private boolean onProvisionedOnly = false;
+ private List<String> projects;
+ private List<String> projectIds;
public Builder setOrganization(@Nullable String organization) {
this.organization = organization;
@@ -142,7 +158,19 @@ public class SearchWsRequest {
return this;
}
+ public Builder setProjects(@Nullable List<String> projects) {
+ this.projects = projects;
+ return this;
+ }
+
+ public Builder setProjectIds(@Nullable List<String> projectIds) {
+ this.projectIds = projectIds;
+ return this;
+ }
+
public SearchWsRequest build() {
+ checkArgument(projects==null || !projects.isEmpty(), "Project key list must not be empty");
+ checkArgument(projectIds==null || !projectIds.isEmpty(), "Project id list must not be empty");
checkArgument(pageSize == null || pageSize <= MAX_PAGE_SIZE, "Page size must not be greater than %s", MAX_PAGE_SIZE);
return new SearchWsRequest(this);
}