From 83f179e8c776e205cfdc4e15c06f6fd4f1473bee Mon Sep 17 00:00:00 2001 From: Andrew Shvayka Date: Fri, 21 Apr 2017 13:33:22 +0300 Subject: [PATCH] Fixed bug with REST API data representation for telemetry plugin --- .../core/plugin/telemetry/SubscriptionManager.java | 1 - .../plugin/telemetry/handlers/TelemetryRestMsgHandler.java | 7 ++++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/SubscriptionManager.java b/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/SubscriptionManager.java index 8788f3ebf6..8cb1bf364e 100644 --- a/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/SubscriptionManager.java +++ b/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/SubscriptionManager.java @@ -291,7 +291,6 @@ public class SubscriptionManager { } else { log.trace("[{}] Remote subscription is now handled on new server address: [{}]", s.getWsSessionId(), newAddress); subscriptionIterator.remove(); - //TODO: onUpdate state of subscription by WsSessionId and other maps. } } diff --git a/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/handlers/TelemetryRestMsgHandler.java b/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/handlers/TelemetryRestMsgHandler.java index c7cb47c2a1..633f620e97 100644 --- a/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/handlers/TelemetryRestMsgHandler.java +++ b/extensions-core/src/main/java/org/thingsboard/server/extensions/core/plugin/telemetry/handlers/TelemetryRestMsgHandler.java @@ -139,7 +139,12 @@ public class TelemetryRestMsgHandler extends DefaultRestMsgHandler { public void onSuccess(PluginContext ctx, List data) { Map> result = new LinkedHashMap<>(); for (TsKvEntry entry : data) { - result.put(entry.getKey(), data.stream().map(v -> new TsData(v.getTs(), v.getValueAsString())).collect(Collectors.toList())); + List vList = result.get(entry.getKey()); + if (vList == null) { + vList = new ArrayList<>(); + result.put(entry.getKey(), vList); + } + vList.add(new TsData(entry.getTs(), entry.getValueAsString())); } msg.getResponseHolder().setResult(new ResponseEntity<>(result, HttpStatus.OK)); }