Showing
2 changed files
with
15 additions
and
10 deletions
... | ... | @@ -83,18 +83,10 @@ public abstract class AbstractRpcController extends BaseController { |
83 | 83 | protected DeferredResult<ResponseEntity> handleDeviceRPCRequest(boolean oneWay, DeviceId deviceId, String requestBody, HttpStatus timeoutStatus, HttpStatus noActiveConnectionStatus) throws ThingsboardException { |
84 | 84 | try { |
85 | 85 | JsonNode rpcRequestBody = JacksonUtil.toJsonNode(requestBody); |
86 | - ToDeviceRpcRequestBody body = new ToDeviceRpcRequestBody(rpcRequestBody.get("method").asText(), JacksonUtil.toString(rpcRequestBody.get("params"))); | |
87 | 86 | SecurityUser currentUser = getCurrentUser(); |
88 | - TenantId tenantId = currentUser.getTenantId(); | |
89 | - final DeferredResult<ResponseEntity> response = new DeferredResult<>(); | |
90 | - long timeout = rpcRequestBody.has(DataConstants.TIMEOUT) ? rpcRequestBody.get(DataConstants.TIMEOUT).asLong() : defaultTimeout; | |
91 | - long expTime = rpcRequestBody.has(DataConstants.EXPIRATION_TIME) ? rpcRequestBody.get(DataConstants.EXPIRATION_TIME).asLong() : System.currentTimeMillis() + Math.max(minTimeout, timeout); | |
92 | - UUID rpcRequestUUID = rpcRequestBody.has("requestUUID") ? UUID.fromString(rpcRequestBody.get("requestUUID").asText()) : UUID.randomUUID(); | |
93 | - boolean persisted = rpcRequestBody.has(DataConstants.PERSISTENT) && rpcRequestBody.get(DataConstants.PERSISTENT).asBoolean(); | |
94 | - | |
95 | 87 | |
96 | 88 | //Thingskit function |
97 | - DeviceDTO tkDevice = tkDeviceService.findDeviceInfoByTbDeviceId(currentUser.getCurrentTenantId(), deviceId.getId().toString()); | |
89 | + DeviceDTO targetDevice = tkDeviceService.findDeviceInfoByTbDeviceId(currentUser.getCurrentTenantId(), deviceId.getId().toString()); | |
98 | 90 | ObjectNode additional = (ObjectNode) rpcRequestBody.get(DataConstants.ADDITIONAL_INFO); |
99 | 91 | if(additional == null){ |
100 | 92 | additional = JacksonUtil.newObjectNode(); |
... | ... | @@ -102,9 +94,20 @@ public abstract class AbstractRpcController extends BaseController { |
102 | 94 | if(!additional.has(FastIotConstants.Rpc.TARGET_ID)){ |
103 | 95 | additional.put(FastIotConstants.Rpc.TARGET_ID, deviceId.getId().toString()); |
104 | 96 | } |
105 | - DeviceId realDevice = DeviceTypeEnum.SENSOR == tkDevice.getDeviceType()?new DeviceId(UUID.fromString(tkDevice.getGatewayId())):deviceId; | |
97 | + String methodName = rpcRequestBody.get("method").asText(); | |
98 | + ObjectNode methodParams = (ObjectNode) rpcRequestBody.get("params"); | |
99 | + methodParams.put(FastIotConstants.Rpc.TARGET_NAME,targetDevice.getName()); | |
100 | + DeviceId realDevice = DeviceTypeEnum.SENSOR == targetDevice.getDeviceType()?new DeviceId(UUID.fromString(targetDevice.getGatewayId())):deviceId; | |
106 | 101 | String additionalInfo = JacksonUtil.toString(additional); |
107 | 102 | |
103 | + ToDeviceRpcRequestBody body = new ToDeviceRpcRequestBody(methodName, JacksonUtil.toString(methodParams)); | |
104 | + TenantId tenantId = currentUser.getTenantId(); | |
105 | + final DeferredResult<ResponseEntity> response = new DeferredResult<>(); | |
106 | + long timeout = rpcRequestBody.has(DataConstants.TIMEOUT) ? rpcRequestBody.get(DataConstants.TIMEOUT).asLong() : defaultTimeout; | |
107 | + long expTime = rpcRequestBody.has(DataConstants.EXPIRATION_TIME) ? rpcRequestBody.get(DataConstants.EXPIRATION_TIME).asLong() : System.currentTimeMillis() + Math.max(minTimeout, timeout); | |
108 | + UUID rpcRequestUUID = rpcRequestBody.has("requestUUID") ? UUID.fromString(rpcRequestBody.get("requestUUID").asText()) : UUID.randomUUID(); | |
109 | + boolean persisted = rpcRequestBody.has(DataConstants.PERSISTENT) && rpcRequestBody.get(DataConstants.PERSISTENT).asBoolean(); | |
110 | + | |
108 | 111 | Integer retries = rpcRequestBody.has(DataConstants.RETRIES) ? rpcRequestBody.get(DataConstants.RETRIES).asInt() : null; |
109 | 112 | accessValidator.validate(currentUser, Operation.RPC_CALL, realDevice, new HttpValidationCallback(response, new FutureCallback<>() { |
110 | 113 | @Override | ... | ... |