diff --git a/src/client.rs b/src/client.rs index 69467ce..1e42d9e 100644 --- a/src/client.rs +++ b/src/client.rs @@ -325,7 +325,8 @@ impl Client { msg.get_data("doc").unwrap().to_string(), )s */ - self.registry.send(&tx_id, initial_msg.reply(MsgType::Document)); + self.registry + .send(&tx_id, initial_msg.reply(MsgType::Document)); } } diff --git a/src/lib.rs b/src/lib.rs index eb7f28a..5e041ff 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -37,7 +37,7 @@ impl MoreThanText { let mut msg = Message::new(MsgType::SessionValidate); match session { Some(id) => msg.add_data("sess_id", id.into()), - None => {}, + None => {} } let rx = self.client_link.send(msg); let reply = rx.recv().unwrap(); diff --git a/src/main.rs b/src/main.rs index a1c6068..82a6d2f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,8 +4,7 @@ use axum::{ http::request::Parts, response::IntoResponse, routing::get, - RequestPartsExt, - Router, + RequestPartsExt, Router, }; use axum_extra::extract::cookie::{Cookie, CookieJar}; use clap::Parser; @@ -44,7 +43,16 @@ async fn main() { .unwrap(); } -struct SessionID; +async fn create_app(state: MoreThanText) -> Router { + Router::new() + .route("/", get(mtt_conn)) + .layer(CookieManagerLayer::new()) + .layer(Extension(state.clone())) + .with_state(state) +} + +#[derive(Clone)] +struct SessionID(Uuid); #[async_trait] impl FromRequestParts for SessionID @@ -54,20 +62,22 @@ where type Rejection = Infallible; async fn from_request_parts(parts: &mut Parts, state: &S) -> Result { - let cookies = parts.extract::>(); - Ok(Self {}) + let Extension(cookies) = parts.extract::>().await.unwrap(); + let Extension(mut state) = parts.extract::>().await.unwrap(); + let sess_id: Option = None; + let id = Uuid::nil(); + //let id = state.validate_session(sess_id); + cookies.add(tower_cookies::Cookie::new(SESSION_KEY, id.to_string())); + Ok(SessionID(id)) } } -async fn create_app(state: MoreThanText) -> Router { - Router::new().route("/", get(mtt_conn)).with_state(state) -} - async fn mtt_conn( jar: CookieJar, sess_id: SessionID, state: State, ) -> impl IntoResponse { + /* let sid = match jar.get(SESSION_KEY) { Some(cookie) => Some(cookie.value().to_string()), None => None, @@ -81,6 +91,8 @@ async fn mtt_conn( let cookie = Cookie::build((SESSION_KEY, reply.get_data("sess_id").unwrap().to_string())); let cookies = jar.add(cookie); (cookies, reply.get_data("dov").unwrap().to_string()) + */ + ("something".to_string(),) } #[cfg(test)]