diff --git a/src/api/routes/user.rs b/src/api/routes/user.rs index 9464c38..6b08a38 100644 --- a/src/api/routes/user.rs +++ b/src/api/routes/user.rs @@ -1,16 +1,17 @@ -use rocket::response::status::Custom; +use anyhow::Result; use rocket::{ - http::{Status}, + http::Status, response::status, Rocket, }; +use rocket::response::status::Custom; use rocket_contrib::json::Json; use serde_json::Value; 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}; +use crate::core::users::service::{activate_user, create_or_fetch_user, fetch_user}; #[post("/", data = "")] fn activate(mut user: Json, conn: DbConn) -> Custom> { @@ -39,6 +40,11 @@ fn activate(mut user: Json, conn: DbConn) -> Custom> { } } -pub fn fuel(rocket: Rocket) -> Rocket { - rocket.mount("/api/user", routes![activate]) +#[get("/")] +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]) } diff --git a/src/core/users/service.rs b/src/core/users/service.rs index 57d8108..2f593b2 100644 --- a/src/core/users/service.rs +++ b/src/core/users/service.rs @@ -33,6 +33,10 @@ pub fn create_or_fetch_user(id: String, conn: &PgConnection) -> Result { Ok(user) } +pub fn fetch_user(id: String, conn: &PgConnection) -> Result { + postgres::find_user(id, conn) +} + pub fn activate_user(user: &mut User, conn: &PgConnection) -> Result { let hashed_pass = hash(user.password.as_ref().unwrap().as_bytes(), DEFAULT_COST)?; user.password = Some(hashed_pass);