From a975f5a0cd1f3849554d52930f06e2d5e42d4a6c Mon Sep 17 00:00:00 2001 From: Curly Bryce Date: Wed, 3 Jul 2024 20:06:02 -0600 Subject: register now returns name and id --- README.md | 1 + src/db.rs | 10 +++++++--- src/main.rs | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index abb254b..4a489c0 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ - ID is optional - Response - 201 Created + - JSON `{"name":"NAME", "id": "ID"}` - 400 Bad Request - JSON `"UID is taken"` - 500 Internal Server Error diff --git a/src/db.rs b/src/db.rs index 85e259b..c655cf7 100644 --- a/src/db.rs +++ b/src/db.rs @@ -235,10 +235,14 @@ impl DB { } } - pub async fn new_user(&mut self, name: String, password: String, id: UID) -> Result<(), String> { + pub async fn new_user(&mut self, name: String, password: String, id: UID) -> Result { let user = User::new(name, password, id); - self.users.push(user); - self.save().await + self.users.push(user.clone()); + match self.save().await { + Ok(_) => Ok(user), + Err(n) => Err(n), + } + } pub async fn login(&mut self, id: UID, password: &String, clientid: &String) -> Result { diff --git a/src/main.rs b/src/main.rs index 62ae685..e65c8c5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -81,7 +81,7 @@ struct UserForm { id: UID, } #[post("/register", data="", format="json")] -async fn new_user(data: Json, db: &State>) -> (Status, Result<(), Json>) { +async fn new_user(data: Json, db: &State>) -> (Status, Result, Json>) { let mut db = db.lock().await; let id; @@ -112,7 +112,7 @@ async fn new_user(data: Json, db: &State>) -> (Status, Resul Some(n) => { match db.new_user(data.name.clone(), data.password.clone(), n).await { // User has been created - Ok(_) => return (Status::Created, Ok(())), + Ok(u) => return (Status::Created, Ok(Json(u.into()))), // Could not create user Err(n) => return (Status::InternalServerError, Err(n.into())), } -- cgit v1.2.3