From 511cc2d5ef0f3626e08802dd607b9b528ff31f7f Mon Sep 17 00:00:00 2001 From: curly Date: Thu, 9 Feb 2023 17:48:59 -0700 Subject: get_user_by_name POST json --- Cargo.toml | 5 +---- README.md | 4 +++- TODO | 1 - src/database.rs | 3 ++- src/main.rs | 6 +++--- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 21aef71..72ec6bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,4 @@ edition = "2021" serde = "1.0.130" chrono = "0.4.23" sqlite = "0.30.4" - -[dependencies.rocket] -version = "0.5.0-rc.2" -features = ["json"] +rocket = {version = "0.5.0-rc.2", features = ["json"]} diff --git a/README.md b/README.md index be2fc96..58f9989 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,10 @@ GET `/get_user/` - Return type: JSON - Returns: -GET `/get_user_by_name/` +GET `/get_user_by_name` Gets a user from name +- Data type: JSON +- Data: `String` - Return type: JSON - Returns: diff --git a/TODO b/TODO index 7121bc0..f997783 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,5 @@ Authentication -Rework Response to be an enum Add Channels Add DM'ing diff --git a/src/database.rs b/src/database.rs index 0671594..b231675 100644 --- a/src/database.rs +++ b/src/database.rs @@ -191,7 +191,8 @@ impl Database { } pub fn get_user_by_name(&self, name: String) -> Option { let query = "SELECT * FROM users WHERE username IS :name"; - let statement = self.db.prepare(query).unwrap().into_iter().bind::<&[(_, sqlite::Value)]>(&[(":name", name.into())]).unwrap(); + let statement = self.db.prepare(query).unwrap().into_iter() + .bind::<&[(_, sqlite::Value)]>(&[(":name", name.into())]).unwrap(); for row in statement.map(|row| row.unwrap()) { let username = row.read::<&str, _>("username"); diff --git a/src/main.rs b/src/main.rs index 86a6186..a387678 100644 --- a/src/main.rs +++ b/src/main.rs @@ -89,10 +89,10 @@ fn get_user(id: u64, db: &State) -> Json> None => Json(Response(Err("User not found"))) } } -#[get("/get_user_by_name/")] -fn get_user_by_name(name: String, db: &State) -> Json> { +#[post("/get_user_by_name", format = "application/json", data="")] +fn get_user_by_name(name: Json, db: &State) -> Json> { let lock = db.sdb.lock().unwrap(); - match lock.get_user_by_name(name) { + match lock.get_user_by_name(name.0) { Some(n) => Json(Response(Ok(n))), None => Json(Response(Err("User not found"))) } -- cgit v1.2.3