diff --git a/api/src/guards/request/candidate_refresh_token.rs b/api/src/guards/request/candidate_refresh_token.rs index 681d33b..ffc5b8e 100644 --- a/api/src/guards/request/candidate_refresh_token.rs +++ b/api/src/guards/request/candidate_refresh_token.rs @@ -1,4 +1,4 @@ -use entity::candidate::Model; +use entity::candidate::Model as Candidate; use portfolio_core::sea_orm::prelude::Uuid; use portfolio_core::services::candidate_service::CandidateService; use rocket::http::Status; @@ -7,15 +7,14 @@ use rocket::request::{FromRequest, Request}; use crate::pool::Db; +pub struct SessionAuth(Candidate); -pub struct SessionAuth(Model); - -impl SessionAuth { - pub fn model(self) -> Model { // TODO: use into_inner instead? - self.0 +impl From for Candidate { + fn from(src: SessionAuth) -> Candidate { + src.0 } } - + #[rocket::async_trait] impl<'r> FromRequest<'r> for SessionAuth { type Error = Option; diff --git a/api/src/lib.rs b/api/src/lib.rs index 0210675..8c39005 100644 --- a/api/src/lib.rs +++ b/api/src/lib.rs @@ -50,7 +50,8 @@ async fn create(conn: Connection<'_, Db>, post_form: Json) -> R #[get("/whoami")] async fn validate(session: SessionAuth) -> Result> { - Ok(session.model().application.to_string()) + let candidate: entity::candidate::Model = session.into(); + Ok(candidate.application.to_string()) } #[post("/login", data = "")]