private Future<EventBusMessage> processUpdateRequest(final EventBusMessage request) { final String tenantId = request.getTenant(); final CredentialsObject payload = Optional.ofNullable(request.getJsonPayload()) .map(json -> json.mapTo(CredentialsObject.class)).orElse(null); if (tenantId == null) { return Future.failedFuture(new ClientErrorException( HttpURLConnection.HTTP_BAD_REQUEST, "missing tenant ID")); } else if (payload == null) { return Future.failedFuture(new ClientErrorException( HttpURLConnection.HTTP_BAD_REQUEST, "missing payload")); } else { try { payload.checkValidity(this::checkSecret); final Future<CredentialsResult<JsonObject>> result = Future.future(); update(tenantId, JsonObject.mapFrom(payload), result.completer()); return result.map(res -> { return request.getResponse(res.getStatus()) .setDeviceId(payload.getDeviceId()) .setCacheDirective(res.getCacheDirective()); }); } catch (IllegalStateException e) { return Future.failedFuture(new ClientErrorException( HttpURLConnection.HTTP_BAD_REQUEST, e.getMessage())); } } }
private Future<EventBusMessage> doUpdate(final EventBusMessage request, final String tenantId, final CredentialsObject payload) { try { payload.checkValidity(this::checkSecret); final Future<CredentialsResult<JsonObject>> result = Future.future(); update(tenantId, JsonObject.mapFrom(payload), result.completer()); return result.map(res -> { return request.getResponse(res.getStatus()) .setDeviceId(payload.getDeviceId()) .setCacheDirective(res.getCacheDirective()); }); } catch (IllegalStateException e) { return Future.failedFuture(new ClientErrorException( HttpURLConnection.HTTP_BAD_REQUEST, e.getMessage())); } }