Search in sources :

Example 11 with Rpc

use of org.thingsboard.server.common.data.rpc.Rpc in project thingsboard by thingsboard.

the class TbRpcService method save.

public void save(TenantId tenantId, RpcId rpcId, RpcStatus newStatus, JsonNode response) {
    Rpc foundRpc = rpcService.findById(tenantId, rpcId);
    if (foundRpc != null) {
        foundRpc.setStatus(newStatus);
        if (response != null) {
            foundRpc.setResponse(response);
        }
        Rpc saved = rpcService.save(foundRpc);
        pushRpcMsgToRuleEngine(tenantId, saved);
    } else {
        log.warn("[{}] Failed to update RPC status because RPC was already deleted", rpcId);
    }
}
Also used : Rpc(org.thingsboard.server.common.data.rpc.Rpc)

Example 12 with Rpc

use of org.thingsboard.server.common.data.rpc.Rpc in project thingsboard by thingsboard.

the class TbRpcService method save.

public Rpc save(TenantId tenantId, Rpc rpc) {
    Rpc saved = rpcService.save(rpc);
    pushRpcMsgToRuleEngine(tenantId, saved);
    return saved;
}
Also used : Rpc(org.thingsboard.server.common.data.rpc.Rpc)

Example 13 with Rpc

use of org.thingsboard.server.common.data.rpc.Rpc in project thingsboard by thingsboard.

the class BaseRpcControllerTest method testSaveRpc.

@Test
public void testSaveRpc() throws Exception {
    Device device = createDefaultDevice();
    Device savedDevice = doPost("/api/device", device, Device.class);
    ObjectNode rpc = createDefaultRpc();
    String result = doPostAsync("/api/rpc/oneway/" + savedDevice.getId().getId().toString(), JacksonUtil.toString(rpc), String.class, status().isOk());
    String rpcId = JacksonUtil.fromString(result, JsonNode.class).get("rpcId").asText();
    Rpc savedRpc = getRpcById(rpcId);
    Assert.assertNotNull(savedRpc);
    Assert.assertEquals(savedDevice.getId(), savedRpc.getDeviceId());
}
Also used : ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) Rpc(org.thingsboard.server.common.data.rpc.Rpc) Test(org.junit.Test)

Example 14 with Rpc

use of org.thingsboard.server.common.data.rpc.Rpc in project thingsboard by thingsboard.

the class RpcEntity method toData.

@Override
public Rpc toData() {
    Rpc rpc = new Rpc(new RpcId(id));
    rpc.setCreatedTime(createdTime);
    rpc.setTenantId(TenantId.fromUUID(tenantId));
    rpc.setDeviceId(new DeviceId(deviceId));
    rpc.setExpirationTime(expirationTime);
    rpc.setRequest(request);
    rpc.setResponse(response);
    rpc.setStatus(status);
    rpc.setAdditionalInfo(additionalInfo);
    return rpc;
}
Also used : Rpc(org.thingsboard.server.common.data.rpc.Rpc) DeviceId(org.thingsboard.server.common.data.id.DeviceId) RpcId(org.thingsboard.server.common.data.id.RpcId)

Aggregations

Rpc (org.thingsboard.server.common.data.rpc.Rpc)14 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)5 FutureCallback (com.google.common.util.concurrent.FutureCallback)4 Nullable (javax.annotation.Nullable)4 RpcId (org.thingsboard.server.common.data.id.RpcId)4 JsonNode (com.fasterxml.jackson.databind.JsonNode)3 Futures (com.google.common.util.concurrent.Futures)3 ListenableFuture (com.google.common.util.concurrent.ListenableFuture)3 Test (org.junit.Test)3 Device (org.thingsboard.server.common.data.Device)3 ThingsboardException (org.thingsboard.server.common.data.exception.ThingsboardException)3 DeviceId (org.thingsboard.server.common.data.id.DeviceId)3 MoreExecutors (com.google.common.util.concurrent.MoreExecutors)2 InvalidProtocolBufferException (com.google.protobuf.InvalidProtocolBufferException)2 ApiOperation (io.swagger.annotations.ApiOperation)2 ArrayList (java.util.ArrayList)2 Arrays (java.util.Arrays)2 Collections (java.util.Collections)2 ConcurrentModificationException (java.util.ConcurrentModificationException)2 HashMap (java.util.HashMap)2