summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/issue/ws/TagsAction.java16
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) {