diff options
author | Teryk Bellahsene <teryk.bellahsene@sonarsource.com> | 2017-09-05 17:38:36 +0200 |
---|---|---|
committer | Stas Vilchik <stas.vilchik@sonarsource.com> | 2017-09-11 11:28:29 +0200 |
commit | 2f84511c91478521a45a606cd13a703ff4de08f4 (patch) | |
tree | 35f4f6828a6f4597cf6d5bb65d1e2ba7da536c31 /sonar-ws/src/main | |
parent | e8eff068e1d16bb343c87d0c16580dcb43cc5add (diff) | |
download | sonarqube-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')
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); } |