feat: allow any serializable object as response

This commit is contained in:
Valerio Ageno
2024-05-19 20:32:19 +02:00
parent 208c18c94a
commit 4ed6c9902f
5 changed files with 27 additions and 13 deletions
+11 -5
View File
@@ -19,17 +19,23 @@ pub fn handler_core(_args: TokenStream, item: TokenStream) -> TokenStream {
let req = tuono_lib::Request::new(pathname, headers);
let props = #fn_name(&req);
let local_response = #fn_name(&req);
let payload = tuono_lib::Payload::new(&req, "".to_string()).client_payload();
let res = match local_response{
tuono_lib::Response::Props(val) => {
dbg!(&payload);
// TODO: remove unwrap
let payload = tuono_lib::Payload::new(&req, val).client_payload().unwrap();
let res = match props {
tuono_lib::Response::Props(val) => tuono_lib::ssr::Js::SSR.with(|ssr| ssr.borrow_mut().render_to_string(Some(&payload))),
dbg!(&payload);
tuono_lib::ssr::Js::SSR.with(|ssr| ssr.borrow_mut().render_to_string(Some(&payload)))
},
/// TODO: handle here redirection and rewrite
_ => Ok("500 Internal server error".to_string())
};
match res {
Ok(html) => Html(html),
_ => Html("500 internal server error".to_string())