Merge pull request #9091 from volodymyr-babak/edge-json-attr-fix
Edge Attribute Request processing - added support of JSON attributes
This commit is contained in:
commit
49aa60a934
@ -167,6 +167,8 @@ public class DefaultEdgeRequestsService implements EdgeRequestsService {
|
|||||||
attributes.put(attr.getKey(), attr.getDoubleValue().get());
|
attributes.put(attr.getKey(), attr.getDoubleValue().get());
|
||||||
} else if (attr.getDataType() == DataType.LONG && attr.getLongValue().isPresent()) {
|
} else if (attr.getDataType() == DataType.LONG && attr.getLongValue().isPresent()) {
|
||||||
attributes.put(attr.getKey(), attr.getLongValue().get());
|
attributes.put(attr.getKey(), attr.getLongValue().get());
|
||||||
|
} else if (attr.getDataType() == DataType.JSON && attr.getJsonValue().isPresent()) {
|
||||||
|
attributes.set(attr.getKey(), JacksonUtil.toJsonNode(attr.getJsonValue().get()));
|
||||||
} else {
|
} else {
|
||||||
attributes.put(attr.getKey(), attr.getValueAsString());
|
attributes.put(attr.getKey(), attr.getValueAsString());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -384,8 +384,10 @@ public class DeviceEdgeTest extends AbstractEdgeTest {
|
|||||||
"inactivityTimeout", "3600000");
|
"inactivityTimeout", "3600000");
|
||||||
sendAttributesRequestAndVerify(device, DataConstants.SHARED_SCOPE, "{\"key2\":\"value2\"}",
|
sendAttributesRequestAndVerify(device, DataConstants.SHARED_SCOPE, "{\"key2\":\"value2\"}",
|
||||||
"key2", "value2");
|
"key2", "value2");
|
||||||
|
sendAttributesRequestAndVerify(device, DataConstants.SERVER_SCOPE, "{\"jsonKey\":{\"nestedJsonKey\":\"nestedJsonValue\"}}",
|
||||||
|
"jsonKey", "{\"nestedJsonKey\":\"nestedJsonValue\"}");
|
||||||
|
|
||||||
doDelete("/api/plugins/telemetry/DEVICE/" + device.getUuidId() + "/" + DataConstants.SERVER_SCOPE, "keys", "key1, inactivityTimeout");
|
doDelete("/api/plugins/telemetry/DEVICE/" + device.getUuidId() + "/" + DataConstants.SERVER_SCOPE, "keys", "key1, inactivityTimeout, jsonKey");
|
||||||
doDelete("/api/plugins/telemetry/DEVICE/" + device.getUuidId() + "/" + DataConstants.SHARED_SCOPE, "keys", "key2");
|
doDelete("/api/plugins/telemetry/DEVICE/" + device.getUuidId() + "/" + DataConstants.SHARED_SCOPE, "keys", "key2");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -650,6 +652,9 @@ public class DeviceEdgeTest extends AbstractEdgeTest {
|
|||||||
case LONG_V:
|
case LONG_V:
|
||||||
Assert.assertEquals(Long.parseLong(expectedValue), keyValueProto.getLongV());
|
Assert.assertEquals(Long.parseLong(expectedValue), keyValueProto.getLongV());
|
||||||
break;
|
break;
|
||||||
|
case JSON_V:
|
||||||
|
Assert.assertEquals(JacksonUtil.toJsonNode(expectedValue), JacksonUtil.toJsonNode(keyValueProto.getJsonV()));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
Assert.fail("Unexpected data type: " + keyValueProto.getType());
|
Assert.fail("Unexpected data type: " + keyValueProto.getType());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user