public CompletableFuture<EntityCountResponse> count(String name, String namePattern, Long networkId, String networkName, HivePrincipal principal) { CountDeviceRequest countDeviceRequest = new CountDeviceRequest(name, namePattern, networkId, networkName, principal); return count(countDeviceRequest); }
@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(); } }
public static CountDeviceRequest createCountDeviceRequest(JsonObject request, HivePrincipal principal) { final CountDeviceRequest countDeviceRequest = new GsonBuilder() .excludeFieldsWithModifiers(Modifier.PROTECTED) .create() .fromJson(request, CountDeviceRequest.class); countDeviceRequest.setPrincipal(principal); return countDeviceRequest; }
@HiveWebsocketAuth @PreAuthorize("isAuthenticated() and hasPermission(null, 'GET_DEVICE')") public void processDeviceCount(JsonObject request, WebSocketSession session) throws HiveException { HivePrincipal principal = (HivePrincipal) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); CountDeviceRequest countDeviceRequest = CountDeviceRequest.createCountDeviceRequest(request, principal); WebSocketResponse response = new WebSocketResponse(); deviceService.count(countDeviceRequest) .thenAccept(count -> { logger.debug("Device count request proceed successfully"); response.addValue(COUNT, count.getCount(), null); webSocketClientHandler.sendMessage(request, response, session); }); }