public CompletableFuture<Optional<DeviceNotification>> findOne(Long id, String deviceId) { NotificationSearchRequest searchRequest = new NotificationSearchRequest(); searchRequest.setId(id); searchRequest.setDeviceIds(Collections.singleton(deviceId)); CompletableFuture<Response> future = new CompletableFuture<>(); rpcClient.call(Request.newBuilder() .withBody(searchRequest) .withPartitionKey(deviceId) .build(), new ResponseConsumer(future)); return future.thenApply(r -> ((NotificationSearchResponse) r.getBody()).getNotifications().stream().findFirst()); }
Request request = Request.newBuilder() .withBody(sr) .withPartitionKey(sr.getFilter().getFirstKey()) .withSingleReply(false) .build();
Request request = Request.newBuilder() .withBody(subscribeRequest) .withPartitionKey(subscribeRequest.getFilter().getFirstKey()) .withSingleReply(false) .build();
public CompletableFuture<List<DeviceCommand>> find(Collection<String> deviceIds, Collection<String> names, Date timestampSt, Date timestampEnd, String status, String sortField, String sortOrder, Integer take, Integer skip) { CommandSearchRequest searchRequest = new CommandSearchRequest(); searchRequest.setDeviceIds(Sets.newHashSet(deviceIds)); if (names != null) { searchRequest.setNames(Sets.newHashSet(names)); } searchRequest.setTimestampStart(timestampSt); searchRequest.setTimestampEnd(timestampEnd); searchRequest.setStatus(status); searchRequest.setSortField(sortField); searchRequest.setSortOrder(sortOrder); searchRequest.setTake(take); searchRequest.setSkip(skip); CompletableFuture<Response> future = new CompletableFuture<>(); rpcClient.call(Request.newBuilder() .withBody(searchRequest) .withPartitionKey(searchRequest.getDeviceId()) .build(), new ResponseConsumer(future)); // CompletableFuture<Response> => CompletableFuture<List<DeviceCommand>> return future.thenApply(v -> v.getBody().cast(CommandSearchResponse.class).getCommands()); }
@SuppressWarnings("unchecked") public CompletableFuture<List<DeviceNotification>> find(Set<String> deviceIds, Set<String> names, Date timestampSt, Date timestampEnd, String sortField, String sortOrder, Integer take, Integer skip) { NotificationSearchRequest searchRequest = new NotificationSearchRequest(); searchRequest.setDeviceIds(deviceIds); searchRequest.setNames(names); searchRequest.setTimestampStart(timestampSt); searchRequest.setTimestampEnd(timestampEnd); searchRequest.setSortField(sortField); searchRequest.setSortOrder(sortOrder); searchRequest.setTake(take); searchRequest.setSkip(skip); CompletableFuture<Response> future = new CompletableFuture<>(); rpcClient.call(Request.newBuilder() .withBody(searchRequest) .withPartitionKey(searchRequest.getDeviceId()) .build(), new ResponseConsumer(future)); // CompletableFuture<Response> => CompletableFuture<List<DeviceNotification>> return future.thenApply(v -> v.getBody().cast(NotificationSearchResponse.class).getNotifications()); }
public CompletableFuture<DeviceNotification> insert(final DeviceNotification notification, final DeviceVO device) { hiveValidator.validate(notification); CompletableFuture<Response> future = new CompletableFuture<>(); rpcClient.call(Request.newBuilder() .withBody(new NotificationInsertRequest(notification)) .withPartitionKey(device.getDeviceId()) .build(), new ResponseConsumer(future)); return future.thenApply(r -> r.getBody().cast(NotificationInsertResponse.class).getDeviceNotification()); }
public CompletableFuture<DeviceCommand> insert(DeviceCommandWrapper commandWrapper, DeviceVO device, UserVO user) { hiveValidator.validate(commandWrapper); DeviceCommand command = convertWrapperToCommand(commandWrapper, device, user); CompletableFuture<Response> future = new CompletableFuture<>(); rpcClient.call(Request.newBuilder() .withBody(new CommandInsertRequest(command)) .withPartitionKey(device.getDeviceId()) .build(), new ResponseConsumer(future)); return future.thenApply(r -> ((CommandInsertResponse) r.getBody()).getDeviceCommand()); }