diff --git a/src/server/h2service.rs b/src/server/h2service.rs index cb100fd0..982618d6 100644 --- a/src/server/h2service.rs +++ b/src/server/h2service.rs @@ -7,7 +7,7 @@ use std::task::{Context, Poll}; use futures::*; use hyper::{Body, Request, Response, StatusCode}; -use proxmox::api::{http_err, ApiFuture, HttpError, Router, RpcEnvironment}; +use proxmox::api::{http_err, ApiResponseFuture, HttpError, Router, RpcEnvironment}; use crate::tools; use crate::server::formatter::*; @@ -35,7 +35,7 @@ impl H2Service { if self.debug { self.worker.log(msg); } } - fn handle_request(&self, req: Request) -> ApiFuture { + fn handle_request(&self, req: Request) -> ApiResponseFuture { let (parts, body) = req.into_parts(); diff --git a/src/server/rest.rs b/src/server/rest.rs index 119883f1..8d82f855 100644 --- a/src/server/rest.rs +++ b/src/server/rest.rs @@ -285,6 +285,12 @@ pub async fn handle_api_request { + let params = get_request_parameters(info.parameters, parts, req_body, uri_param).await?; + (handler)(params, info, &mut rpcenv) + .await + .map(|data| (formatter.format_data)(data, &rpcenv)) + } }; let resp = match result {