user: add a route to fetch by ID
Signed-off-by: ATechnoHazard <amolele@gmail.com>
This commit is contained in:
parent
97f66956ba
commit
beaca24246
@ -1,16 +1,17 @@
|
|||||||
use rocket::response::status::Custom;
|
use anyhow::Result;
|
||||||
use rocket::{
|
use rocket::{
|
||||||
http::{Status},
|
http::Status,
|
||||||
response::status,
|
response::status,
|
||||||
Rocket,
|
Rocket,
|
||||||
};
|
};
|
||||||
|
use rocket::response::status::Custom;
|
||||||
use rocket_contrib::json::Json;
|
use rocket_contrib::json::Json;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
use crate::api::catchers::{internal_server_error, unprocessable_entity};
|
use crate::api::catchers::{internal_server_error, unprocessable_entity};
|
||||||
use crate::api::guards::db::DbConn;
|
use crate::api::guards::db::DbConn;
|
||||||
use crate::core::users::entity::User;
|
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 = "<user>")]
|
#[post("/", data = "<user>")]
|
||||||
fn activate(mut user: Json<User>, conn: DbConn) -> Custom<Json<Value>> {
|
fn activate(mut user: Json<User>, conn: DbConn) -> Custom<Json<Value>> {
|
||||||
@ -39,6 +40,11 @@ fn activate(mut user: Json<User>, conn: DbConn) -> Custom<Json<Value>> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn fuel(rocket: Rocket) -> Rocket {
|
#[get("/<id>")]
|
||||||
rocket.mount("/api/user", routes![activate])
|
fn fetch(id: String, conn: DbConn) -> Result<Json<User>> {
|
||||||
|
Ok(Json(fetch_user(id, &conn)?))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn fuel(rocket: Rocket) -> Rocket {
|
||||||
|
rocket.mount("/api/user", routes![activate, fetch])
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,10 @@ pub fn create_or_fetch_user(id: String, conn: &PgConnection) -> Result<User> {
|
|||||||
Ok(user)
|
Ok(user)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn fetch_user(id: String, conn: &PgConnection) -> Result<User> {
|
||||||
|
postgres::find_user(id, conn)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn activate_user(user: &mut User, conn: &PgConnection) -> Result<User> {
|
pub fn activate_user(user: &mut User, conn: &PgConnection) -> Result<User> {
|
||||||
let hashed_pass = hash(user.password.as_ref().unwrap().as_bytes(), DEFAULT_COST)?;
|
let hashed_pass = hash(user.password.as_ref().unwrap().as_bytes(), DEFAULT_COST)?;
|
||||||
user.password = Some(hashed_pass);
|
user.password = Some(hashed_pass);
|
||||||
|
Loading…
Reference in New Issue
Block a user