From 28fe55b8db697ae84d6319ab32f61b0ae592d0aa Mon Sep 17 00:00:00 2001 From: ATechnoHazard Date: Sat, 26 Sep 2020 16:17:37 +0530 Subject: [PATCH] users: add a route to fetch the user from cookie Signed-off-by: ATechnoHazard --- src/api/routes/user.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/api/routes/user.rs b/src/api/routes/user.rs index 6b08a38..b30cae5 100644 --- a/src/api/routes/user.rs +++ b/src/api/routes/user.rs @@ -4,6 +4,7 @@ use rocket::{ response::status, Rocket, }; +use rocket::http::Cookies; use rocket::response::status::Custom; use rocket_contrib::json::Json; use serde_json::Value; @@ -12,6 +13,7 @@ use crate::api::catchers::{internal_server_error, unprocessable_entity}; use crate::api::guards::db::DbConn; use crate::core::users::entity::User; use crate::core::users::service::{activate_user, create_or_fetch_user, fetch_user}; +use crate::utils::users::get_session_id; #[post("/", data = "")] fn activate(mut user: Json, conn: DbConn) -> Custom> { @@ -45,6 +47,12 @@ fn fetch(id: String, conn: DbConn) -> Result> { Ok(Json(fetch_user(id, &conn)?)) } -pub fn fuel(rocket: Rocket) -> Rocket { - rocket.mount("/api/user", routes![activate, fetch]) +#[get("/me")] +fn fetch_me(conn: DbConn, mut ck: Cookies) -> Result> { + let id = get_session_id(&mut ck); + Ok(Json(fetch_user(id, &conn)?)) +} + +pub fn fuel(rocket: Rocket) -> Rocket { + rocket.mount("/api/user", routes![activate, fetch, fetch_me]) }