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; } }
public static PluginVO convertToVo(Plugin entity) { PluginVO vo = null; if (entity != null) { vo = new PluginVO(); vo.setId(entity.getId()); vo.setName(entity.getName()); vo.setDescription(entity.getDescription()); vo.setTopicName(entity.getTopicName()); vo.setFilter(entity.getFilter()); vo.setStatus(entity.getStatus()); vo.setSubscriptionId(entity.getSubscriptionId()); vo.setUserId(entity.getUserId()); vo.setParameters(entity.getParameters()); } return vo; }
public PluginVO convertTo() { PluginVO pluginVO = new PluginVO(); pluginVO.setName(name); pluginVO.setDescription(description); pluginVO.setStatus(ACTIVE); pluginVO.setParameters(parameters); return pluginVO; } }
private CompletableFuture<PluginVO> persistPlugin(PluginUpdate pluginUpdate, String filterString, Long userId) { hiveValidator.validate(pluginUpdate); PluginVO pluginVO = pluginUpdate.convertTo(); pluginVO.setUserId(userId); pluginVO.setFilter(filterString); pluginVO.setStatus(PluginStatus.CREATED); //Creation of topic for plugin String pluginTopic = "plugin_topic_" + UUID.randomUUID().toString(); kafkaTopicService.createTopic(pluginTopic); pluginVO.setTopicName(pluginTopic); pluginService.create(pluginVO); return CompletableFuture.completedFuture(pluginVO); }
existingPlugin.setName(pluginUpdateQuery.getName()); existingPlugin.setDescription(pluginUpdateQuery.getDescription()); existingPlugin.setParameters(pluginUpdateQuery.getParameters()); !pluginUpdateQuery.getStatus().equals(existingPlugin.getStatus()); if (isFilterUpdated && !isStatusUpdated && existingPlugin.getStatus().equals(PluginStatus.ACTIVE)) { logger.error("Plugin's subscription filter can't be updated if plugin is ACTIVE"); throw new HiveException(Messages.ACTIVE_PLUGIN_UPDATED, BAD_REQUEST.getStatusCode()); existingPlugin.setStatus(pluginUpdateQuery.getStatus()); existingPlugin.setFilter(pluginUpdateQuery.constructFilterString()); if (pluginUpdateQuery.getStatus().equals(PluginStatus.ACTIVE) && existingPlugin.getSubscriptionId() == null) { Long subscriptionId = idGenerator.generate(); request = filterService.createPluginSubscribeRequest(existingPlugin.getFilter()); request.setSubscriptionId(subscriptionId); existingPlugin.setSubscriptionId(subscriptionId); ((PluginSubscribeRequest) request).setTopicName(existingPlugin.getTopicName()); if (pluginUpdateQuery.getStatus().equals(PluginStatus.INACTIVE) && existingPlugin.getSubscriptionId() != null) { request = new PluginUnsubscribeRequest(existingPlugin.getSubscriptionId(), existingPlugin.getTopicName()); existingPlugin.setSubscriptionId(null);
@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)); } }
private Long getCreatorId(String topic, UserVO user) { if (topic.equals("*")) { return user.isAdmin() ? user.getId() : null; } PluginVO pluginVO = pluginService.findByTopic(topic); return Optional.ofNullable(pluginVO) .map(plugin -> plugin.getUserId()) .orElse(null); }
public CompletableFuture<Response> register(Long userId, PluginReqisterQuery pluginReqisterQuery, PluginUpdate pluginUpdate, String authorization) { validateSubscription(pluginReqisterQuery); checkAuthServiceAvailable(); return persistPlugin(pluginUpdate, pluginReqisterQuery.constructFilterString(), userId).thenApply(pluginVO -> { JwtTokenVO jwtTokenVO = createPluginTokens(pluginVO.getTopicName(), authorization); JsonObject response = createTokenResponse(pluginVO.getTopicName(), jwtTokenVO); return ResponseFactory.response(CREATED, response, PLUGIN_SUBMITTED); }); }
private PluginVO getPluginVO(String topicName, AsyncResponse asyncResponse, HivePrincipal principal, UserVO user) { PluginVO pluginVO; if (principal.getPlugin() != null) { pluginVO = principal.getPlugin(); } else { pluginVO = pluginService.findByTopic(topicName); if (pluginVO == null) { if (user.isAdmin()) { asyncResponse.resume(ResponseFactory.response(NOT_FOUND, new ErrorResponse(NOT_FOUND.getStatusCode(), PLUGIN_NOT_FOUND))); } else { asyncResponse.resume(ResponseFactory.response(FORBIDDEN, new ErrorResponse(FORBIDDEN.getStatusCode(), NO_ACCESS_TO_PLUGIN))); } } else if (!user.isAdmin() && pluginVO.getUserId() != null && !pluginVO.getUserId().equals(user.getId())) { asyncResponse.resume(ResponseFactory.response(FORBIDDEN, new ErrorResponse(FORBIDDEN.getStatusCode(), NO_ACCESS_TO_PLUGIN))); } } return pluginVO; } }
if (plugin != null && plugin.getTopicName() != null) { return plugin.getTopicName().equals(targetDomainObject);
UserWithNetworkVO userWithNetworksVO = userService.findUserWithNetworks(existingPlugin.getUserId()); .map(NetworkVO::getId).collect(Collectors.toSet())); UserWithDeviceTypeVO userWithDeviceTypeVO = userService.findUserWithDeviceType(existingPlugin.getUserId()); if (!userWithDeviceTypeVO.getAllDeviceTypesAvailable()) { principal.setAllDeviceTypesAvailable(false);