based/src/request/context.rs

22 lines
555 B
Rust
Raw Normal View History

2024-12-17 23:28:43 +01:00
use rocket::{request::{self, FromRequest}, Request};
use crate::user::{Session, User};
pub struct RequestContext {
pub is_htmx: bool
}
#[rocket::async_trait]
impl<'r> FromRequest<'r> for RequestContext {
type Error = ();
async fn from_request(req: &'r Request<'_>) -> request::Outcome<Self, Self::Error> {
rocket::outcome::Outcome::Success(RequestContext {
is_htmx: !req
.headers()
.get("HX-Request")
.collect::<Vec<&str>>()
.is_empty()
})
}
}