diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/sonar-server/src/main/java/org/sonar/server/issue/ws/TagsAction.java | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/ws/TagsAction.java b/server/sonar-server/src/main/java/org/sonar/server/issue/ws/TagsAction.java index f208ca97812..de2f6ba3f98 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/ws/TagsAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/ws/TagsAction.java @@ -38,7 +38,10 @@ import org.sonar.db.DbSession; import org.sonar.db.organization.OrganizationDto; import org.sonar.server.issue.index.IssueIndex; import org.sonar.server.rule.index.RuleIndex; +import org.sonar.server.ws.WsUtils; +import org.sonarqube.ws.Issues; +import static org.sonar.server.ws.WsUtils.writeProtobuf; import static org.sonar.server.ws.WsUtils.checkFoundWithOptional; import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION; @@ -58,14 +61,6 @@ public class TagsAction implements IssuesWsAction { this.dbClient = dbClient; } - private static void writeResponse(Response response, List<String> tags) { - try (JsonWriter json = response.newJsonWriter()) { - json.beginObject().name("tags").beginArray(); - tags.forEach(json::value); - json.endArray().endObject(); - } - } - @Override public void define(WebService.NewController controller) { NewAction action = controller.createAction("tags") @@ -89,7 +84,10 @@ public class TagsAction implements IssuesWsAction { int pageSize = request.mandatoryParamAsInt("ps"); OrganizationDto organization = getOrganization(request.param(PARAM_ORGANIZATION)); List<String> tags = listTags(organization, query, pageSize == 0 ? Integer.MAX_VALUE : pageSize); - writeResponse(response, tags); + + Issues.TagsResponse.Builder tagsResponseBuilder = Issues.TagsResponse.newBuilder(); + tags.forEach(tagsResponseBuilder::addTags); + writeProtobuf(tagsResponseBuilder.build(), request, response); } private List<String> listTags(@Nullable OrganizationDto organization, @Nullable String textQuery, int pageSize) { |