2024-08-10 16:59:36 +02:00
|
|
|
use askama_axum::Template;
|
2024-08-19 19:34:12 +02:00
|
|
|
use axum::{
|
|
|
|
async_trait,
|
|
|
|
extract::FromRequestParts,
|
|
|
|
http::{request::Parts, HeaderMap, StatusCode},
|
|
|
|
};
|
2024-08-06 00:18:09 +02:00
|
|
|
|
|
|
|
#[derive(Template)]
|
|
|
|
#[template(path = "pages/cps.html")]
|
2024-08-10 16:59:36 +02:00
|
|
|
pub struct CpsTemplate;
|
2024-08-06 00:18:09 +02:00
|
|
|
|
2024-08-19 19:34:12 +02:00
|
|
|
pub struct ExtractHxRequest(bool);
|
|
|
|
|
|
|
|
#[async_trait]
|
|
|
|
impl<S> FromRequestParts<S> for ExtractHxRequest
|
|
|
|
where
|
|
|
|
S: Send + Sync,
|
|
|
|
{
|
|
|
|
type Rejection = (StatusCode, &'static str);
|
|
|
|
|
|
|
|
async fn from_request_parts(parts: &mut Parts, _state: &S) -> Result<Self, Self::Rejection> {
|
|
|
|
if parts.headers.get("HX-Request").is_some() {
|
|
|
|
Ok(ExtractHxRequest(true))
|
|
|
|
} else {
|
|
|
|
Ok(ExtractHxRequest(false))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub async fn cps(headers: HeaderMap, hx_request: ExtractHxRequest) -> CpsTemplate {
|
|
|
|
println!("{:#?}", headers);
|
|
|
|
println!("{:#?}", hx_request.0);
|
2024-08-10 16:59:36 +02:00
|
|
|
CpsTemplate
|
2024-08-08 15:01:28 +02:00
|
|
|
}
|