use std::str::FromStr; use rocket::{http::Status, outcome::Outcome, request::{self, Request, FromRequest}}; use sqlx::PgPool; use uuid::Uuid; use crate::db::models::auth::LoginSession; #[rocket::async_trait] impl<'r> FromRequest<'r> for LoginSession { type Error = (); async fn from_request(req: &'r Request<'_>) -> request::Outcome { // At the moment just always look up this one for initial testing let hardcoded_uuid = "557621dd-b98e-409a-9ce7-25b5004caa42"; if let Some(db) = req.rocket().state::() { if let Some(session) = LoginSession::lookup(&db, Uuid::from_str(hardcoded_uuid).unwrap()).await { return Outcome::Success(session); } } Outcome::Error((Status::InternalServerError, ())) } }