From d5c6911c6c0fdb5e57afabfd27b2d0f36c5c2824 Mon Sep 17 00:00:00 2001 From: Teryk Bellahsene Date: Mon, 8 Jun 2015 14:42:41 +0200 Subject: [PATCH] SONAR-6570 WS metrics/search add type object with key and name in response --- .../sonar/server/metric/ws/SearchAction.java | 12 ++++- .../server/metric/ws/example-search.json | 10 +++- .../ws/SearchActionTest/search_metrics.json | 47 +++++++++++-------- 3 files changed, 47 insertions(+), 22 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/metric/ws/SearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/metric/ws/SearchAction.java index 0dcbc08a1fa..a9d2c6c00da 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/metric/ws/SearchAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/metric/ws/SearchAction.java @@ -120,12 +120,22 @@ public class SearchAction implements MetricsWsAction { writeIfDesired(json, FIELD_NAME, metric.getShortName(), desiredFields); writeIfDesired(json, FIELD_DESCRIPTION, metric.getDescription(), desiredFields); writeIfDesired(json, FIELD_DOMAIN, metric.getDomain(), desiredFields); - writeIfDesired(json, FIELD_TYPE, Metric.ValueType.descriptionOf(metric.getValueType()), desiredFields); + writeType(json, metric.getValueType(), desiredFields); json.endObject(); } json.endArray(); } + private void writeType(JsonWriter json, String typeKey, Set desiredFields) { + if (desiredFields.contains(FIELD_TYPE)) { + json.name(FIELD_TYPE); + json.beginObject(); + json.prop("key", typeKey); + json.prop("name", Metric.ValueType.descriptionOf(typeKey)); + json.endObject(); + } + } + private static void writeIfDesired(JsonWriter json, String field, String value, Set desiredFields) { if (desiredFields.contains(field)) { json.prop(field, value); diff --git a/server/sonar-server/src/main/resources/org/sonar/server/metric/ws/example-search.json b/server/sonar-server/src/main/resources/org/sonar/server/metric/ws/example-search.json index 3a7a4ddd8d7..e0d6011b099 100644 --- a/server/sonar-server/src/main/resources/org/sonar/server/metric/ws/example-search.json +++ b/server/sonar-server/src/main/resources/org/sonar/server/metric/ws/example-search.json @@ -6,7 +6,10 @@ "name": "Team size", "description": "Number of people in the team", "domain": "Management", - "type": "INT" + "type": { + "key": "INT", + "name": "Integer" + } }, { "id": "2", @@ -14,7 +17,10 @@ "name": "Uncovered lines", "description": "Uncovered lines", "domain": "Tests", - "type": "INT" + "type": { + "key": "INT", + "name": "Integer" + } } ], "total": 2, diff --git a/server/sonar-server/src/test/resources/org/sonar/server/metric/ws/SearchActionTest/search_metrics.json b/server/sonar-server/src/test/resources/org/sonar/server/metric/ws/SearchActionTest/search_metrics.json index 0bae892fc3d..a237356a227 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/metric/ws/SearchActionTest/search_metrics.json +++ b/server/sonar-server/src/test/resources/org/sonar/server/metric/ws/SearchActionTest/search_metrics.json @@ -1,28 +1,37 @@ { - "metrics":[ + "metrics": [ { - "key":"custom-key-1", - "name":"custom-name-1", - "type":"Integer", - "domain":"custom-domain-1", - "description":"custom-description-1" + "key": "custom-key-1", + "name": "custom-name-1", + "type": { + "key": "INT", + "name": "Integer" + }, + "domain": "custom-domain-1", + "description": "custom-description-1" }, { - "key":"custom-key-2", - "name":"custom-name-2", - "type":"Integer", - "domain":"custom-domain-2", - "description":"custom-description-2" + "key": "custom-key-2", + "name": "custom-name-2", + "type": { + "key": "INT", + "name": "Integer" + }, + "domain": "custom-domain-2", + "description": "custom-description-2" }, { - "key":"custom-key-3", - "name":"custom-name-3", - "type":"Integer", - "domain":"custom-domain-3", - "description":"custom-description-3" + "key": "custom-key-3", + "name": "custom-name-3", + "type": { + "key": "INT", + "name": "Integer" + }, + "domain": "custom-domain-3", + "description": "custom-description-3" } ], - "total":3, - "ps":100, - "p":1 + "total": 3, + "ps": 100, + "p": 1 } -- 2.39.5