@Transactional public CompletableFuture<Response> delete(PluginVO existingPlugin) { pluginService.delete(existingPlugin.getId()); CompletableFuture<com.devicehive.shim.api.Response> future = new CompletableFuture<>(); if (existingPlugin.getSubscriptionId() != null) { PluginUnsubscribeRequest request = new PluginUnsubscribeRequest(existingPlugin.getSubscriptionId(), existingPlugin.getTopicName()); rpcClient.call(Request.newBuilder() .withBody(request) .build(), new ResponseConsumer(future)); return future.thenApply(response -> ResponseFactory.response(NO_CONTENT)); } else { return CompletableFuture.completedFuture(ResponseFactory.response(NO_CONTENT)); } }
if (pluginUpdateQuery.getStatus().equals(PluginStatus.ACTIVE) && existingPlugin.getSubscriptionId() == null) { Long subscriptionId = idGenerator.generate(); request = filterService.createPluginSubscribeRequest(existingPlugin.getFilter()); if (pluginUpdateQuery.getStatus().equals(PluginStatus.INACTIVE) && existingPlugin.getSubscriptionId() != null) { request = new PluginUnsubscribeRequest(existingPlugin.getSubscriptionId(), existingPlugin.getTopicName()); existingPlugin.setSubscriptionId(null);
public static Plugin convertToEntity(PluginVO vo) { Plugin entity = null; if (vo != null) { entity = new Plugin(); entity.setId(vo.getId()); entity.setName(vo.getName()); entity.setDescription(vo.getDescription()); entity.setTopicName(vo.getTopicName()); entity.setFilter(vo.getFilter()); entity.setStatus(vo.getStatus()); entity.setSubscriptionId(vo.getSubscriptionId()); entity.setUserId(vo.getUserId()); entity.setParameters(vo.getParameters()); } return entity; } }