diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/db.rs | 10 | ||||
-rw-r--r-- | src/main.rs | 4 |
2 files changed, 9 insertions, 5 deletions
@@ -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<User, String> { 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<String, String> { 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="<data>", format="json")] -async fn new_user(data: Json<UserForm>, db: &State<Mutex<DB>>) -> (Status, Result<(), Json<String>>) { +async fn new_user(data: Json<UserForm>, db: &State<Mutex<DB>>) -> (Status, Result<Json<UserOut>, Json<String>>) { let mut db = db.lock().await; let id; @@ -112,7 +112,7 @@ async fn new_user(data: Json<UserForm>, db: &State<Mutex<DB>>) -> (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())), } |