mirror of
https://github.com/tuono-labs/tuono
synced 2026-07-29 13:52:46 -07:00
fix: body parsing function (#670)
This commit is contained in:
@@ -48,6 +48,28 @@ pub fn api_core(attrs: TokenStream, item: TokenStream) -> TokenStream {
|
||||
let application_state_extractor = crate_application_state_extractor(argument_names.clone());
|
||||
let application_state_import = import_main_application_state(argument_names.clone());
|
||||
|
||||
let modified_request = if http_method == "post"
|
||||
|| http_method == "put"
|
||||
|| http_method == "patch"
|
||||
{
|
||||
quote! {
|
||||
let (parts, body) = request.into_parts();
|
||||
let path = parts.uri.clone();
|
||||
let headers = parts.headers.clone();
|
||||
|
||||
let body = tuono_lib::axum::body::to_bytes(body, usize::MAX).await.unwrap_or(Vec::new().into()).to_vec();
|
||||
|
||||
let req = tuono_lib::Request::new(path, headers, params, Some(body));
|
||||
}
|
||||
} else {
|
||||
quote! {
|
||||
let pathname = request.uri();
|
||||
let headers = request.headers();
|
||||
|
||||
let req = tuono_lib::Request::new(request.uri().to_owned(), request.headers().to_owned(), params, None);
|
||||
}
|
||||
};
|
||||
|
||||
quote! {
|
||||
#application_state_import
|
||||
|
||||
@@ -55,12 +77,9 @@ pub fn api_core(attrs: TokenStream, item: TokenStream) -> TokenStream {
|
||||
|
||||
pub async fn #api_fn_name(#axum_arguments)#return_type {
|
||||
|
||||
#application_state_extractor
|
||||
#application_state_extractor
|
||||
|
||||
let pathname = request.uri();
|
||||
let headers = request.headers();
|
||||
|
||||
let req = tuono_lib::Request::new(pathname.to_owned(), headers.to_owned(), params);
|
||||
#modified_request
|
||||
|
||||
#fn_name(req.clone(), #argument_names).await
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ pub fn handler_core(_args: TokenStream, item: TokenStream) -> TokenStream {
|
||||
let pathname = request.uri();
|
||||
let headers = request.headers();
|
||||
|
||||
let req = tuono_lib::Request::new(pathname.to_owned(), headers.to_owned(), params);
|
||||
let req = tuono_lib::Request::new(pathname.to_owned(), headers.to_owned(), params, None);
|
||||
|
||||
#fn_name(req.clone(), #argument_names).await.render_to_string(req)
|
||||
}
|
||||
@@ -68,7 +68,7 @@ pub fn handler_core(_args: TokenStream, item: TokenStream) -> TokenStream {
|
||||
let pathname = request.uri();
|
||||
let headers = request.headers();
|
||||
|
||||
let req = tuono_lib::Request::new(pathname.to_owned(), headers.to_owned(), params);
|
||||
let req = tuono_lib::Request::new(pathname.to_owned(), headers.to_owned(), params, None);
|
||||
|
||||
#fn_name(req.clone(), #argument_names).await.json()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user