22 lines
555 B
Rust
22 lines
555 B
Rust
|
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()
|
||
|
})
|
||
|
}
|
||
|
}
|