private Response handleClientRequest(Request request) { Response response; try { response = Optional.ofNullable(requestHandler.handle(request)) .orElseThrow(() -> new NullPointerException("Response must not be null")); } catch (Exception e) { logger.error("Unexpected exception occurred during request handling (action='{}', handler='{}')", request.getBody().getAction().name(), requestHandler.getClass().getCanonicalName(), e); response = Response.newBuilder() .withLast(request.isSingleReplyExpected()) .buildFailed(500); } return response; }
@Override public Response handle(Request request) { final DeviceCommand command = request.getBody().cast(CommandsUpdateRequest.class).getDeviceCommand(); hazelcastService.store(command); eventBus.publish(new CommandsUpdateEvent(command)); return Response.newBuilder().buildSuccess(); } }
@Override public Response handle(Request request) { NotificationSearchRequest searchRequest = (NotificationSearchRequest) request.getBody(); NotificationSearchResponse payload = searchRequest.getId() != null && !StringUtils.isEmpty(searchRequest.getDeviceId()) ? searchSingleNotificationByDeviceAndId(searchRequest.getId(), searchRequest.getDeviceId()) : searchMultipleNotifications(searchRequest); return Response.newBuilder() .withBody(payload) .buildSuccess(); }
@Override public Response handle(Request request) { final DeviceCommand command = request.getBody().cast(CommandUpdateRequest.class).getDeviceCommand(); hazelcastService.store(command); eventBus.publish(new CommandUpdateEvent(command)); return Response.newBuilder().buildSuccess(); } }
@Override public Response handle(Request request) { CommandSearchRequest searchRequest = (CommandSearchRequest) request.getBody(); CommandSearchResponse payload = searchRequest.getId() != null && !StringUtils.isEmpty(searchRequest.getDeviceId()) ? searchSingleCommandByDeviceAndId(searchRequest.getId(), searchRequest.getDeviceId(), searchRequest.isReturnUpdated()) : searchMultipleCommands(searchRequest); return Response.newBuilder() .withBody(payload) .buildSuccess(); }
@Override public Response handle(Request request) { final DeviceDeleteRequest req = (DeviceDeleteRequest) request.getBody(); final DeviceVO device = req.getDevice(); eventBus.unsubscribeDevice(device); return Response.newBuilder() .withBody(new DeviceDeleteResponse()) .withCorrelationId(request.getCorrelationId()) .buildSuccess(); } }
@Override public Response handle(Request request) { final CountDeviceTypeRequest req = (CountDeviceTypeRequest) request.getBody(); final long count = deviceTypeDao.count(req.getName(), req.getNamePattern(), req.getPrincipal()); final CountResponse countResponse = new CountResponse(count); return Response.newBuilder() .withBody(countResponse) .buildSuccess(); } }
@Override public Response handle(Request request) { DeviceNotification notification = ((NotificationInsertRequest) request.getBody()).getDeviceNotification(); NotificationEvent notificationEvent = new NotificationEvent(notification); eventBus.publish(notificationEvent); hazelcastService.store(notification); NotificationInsertResponse payload = new NotificationInsertResponse(notification); return Response.newBuilder() .withBody(payload) .buildSuccess(); } }
@Override public Response handle(Request request) { final CountNetworkRequest req = (CountNetworkRequest) request.getBody(); final long count = networkDao.count(req.getName(), req.getNamePattern(), req.getPrincipal()); final CountResponse countResponse = new CountResponse(count); return Response.newBuilder() .withBody(countResponse) .buildSuccess(); } }
@Override public Response handle(Request request) { final CountUserRequest req = (CountUserRequest) request.getBody(); final long count = userDao.count(req.getLogin(), req.getLoginPattern(), req.getRole(), req.getStatus()); final CountResponse countResponse = new CountResponse(count); return Response.newBuilder() .withBody(countResponse) .buildSuccess(); } }
@Override public Response handle(Request request) { DeviceCommand deviceCommand = request.getBody().cast(CommandInsertRequest.class).getDeviceCommand(); CommandEvent commandEvent = new CommandEvent(deviceCommand); eventBus.publish(commandEvent); hazelcastService.store(deviceCommand); CommandInsertResponse payload = new CommandInsertResponse(deviceCommand); return Response.newBuilder() .withBody(payload) .buildSuccess(); } }
@Override public Response handle(Request request) { final CountDeviceRequest req = (CountDeviceRequest) request.getBody(); final long count = deviceDao.count(req.getName(), req.getNamePattern(), req.getNetworkId(), req.getNetworkName(), req.getPrincipal()); final CountResponse countResponse = new CountResponse(count); return Response.newBuilder() .withBody(countResponse) .buildSuccess(); } }
@Override public Response handle(Request request) { PluginUnsubscribeRequest body = (PluginUnsubscribeRequest) request.getBody(); validate(body); removeCommandSubscription(body); removeNotificationSubscription(body); return Response.newBuilder() .withBody(new PluginUnsubscribeResponse(body.getSubscriptionId())) .withLast(false) .withCorrelationId(request.getCorrelationId()) .buildSuccess(); }
@Override public Response handle(Request request) { final CountPluginRequest req = (CountPluginRequest) request.getBody(); final long count = pluginDao.count(req.getName(), req.getNamePattern(), req.getTopicName(), req.getStatus(), req.getUserId(), req.getPrincipal()); final CountResponse countResponse = new CountResponse(count); return Response.newBuilder() .withBody(countResponse) .buildSuccess(); } }
@Override public Response handle(Request request) { final ListDeviceTypeRequest req = (ListDeviceTypeRequest) request.getBody(); final List<DeviceTypeVO> deviceTypes = deviceTypeDao.list(req.getName(), req.getNamePattern(), req.getSortField(), req.isSortOrderAsc(), req.getTake(), req.getSkip(), req.getPrincipal()); return Response.newBuilder() .withBody(new ListDeviceTypeResponse(deviceTypes)) .buildSuccess(); } }
@Override public Response handle(Request request) { final ListNetworkRequest req = (ListNetworkRequest) request.getBody(); final List<NetworkVO> networks = networkDao.list(req.getName(), req.getNamePattern(), req.getSortField(), req.isSortOrderAsc(), req.getTake(), req.getSkip(), req.getPrincipal()); return Response.newBuilder() .withBody(new ListNetworkResponse(networks)) .buildSuccess(); } }
@Override public Response handle(Request request) { final ListUserRequest req = (ListUserRequest) request.getBody(); final List<UserVO> users = userDao.list(req.getLogin(), req.getLoginPattern(), req.getRole(), req.getStatus(), req.getSortField(), req.isSortOrderAsc(), req.getTake(), req.getSkip()); return Response.newBuilder() .withBody(new ListUserResponse(users)) .buildSuccess(); } }
@Override public Response handle(Request request) { final CommandUpdateSubscribeRequest body = request.getBody().cast(CommandUpdateSubscribeRequest.class); final Subscriber subscriber = new Subscriber(body.getSubscriptionId(), request.getReplyTo(), request.getCorrelationId()); eventBus.subscribe(body.getFilter(), subscriber); final DeviceCommand deviceCommand = hazelcastService .find(body.getCommandId(), body.getDeviceId(), DeviceCommand.class) .orElse(null); return Response.newBuilder() .withBody(new CommandUpdateSubscribeResponse(body.getSubscriptionId(), deviceCommand)) .withLast(false) .withCorrelationId(request.getCorrelationId()) .buildSuccess(); } }
@Override public Response handle(Request request) { final ListDeviceRequest req = (ListDeviceRequest) request.getBody(); final List<DeviceVO> devices = deviceDao.list(req.getName(), req.getNamePattern(), req.getNetworkId(), req.getNetworkName(), req.getSortField(), req.isSortOrderAsc(), req.getTake(), req.getSkip(), req.getPrincipal()); return Response.newBuilder() .withBody(new ListDeviceResponse(devices)) .buildSuccess(); } }
@Override public Response handle(Request request) { final ListPluginRequest req = (ListPluginRequest) request.getBody(); final List<PluginVO> plugins = pluginDao.list(req.getName(), req.getNamePattern(), req.getTopicName(), req.getStatus(), req.getUserId(), req.getSortField(), req.isSortOrderAsc(), req.getTake(), req.getSkip(), req.getPrincipal()); return Response.newBuilder() .withBody(new ListPluginResponse(plugins)) .buildSuccess(); } }