diff options
author | curly <curly@infernal.garden> | 2024-07-16 13:19:14 -0600 |
---|---|---|
committer | curly <curly@infernal.garden> | 2024-07-16 13:19:14 -0600 |
commit | 12c1da413d09d48ce85bb46d0629166ce986b5d6 (patch) | |
tree | 6778187a442e9bd49f8406f24eac1e9653f024b5 /src/main.rs | |
parent | d109b8e2ed9caa1ad362ec5ee268a2a98c22981e (diff) | |
download | poko_server-12c1da413d09d48ce85bb46d0629166ce986b5d6.tar.gz poko_server-12c1da413d09d48ce85bb46d0629166ce986b5d6.tar.bz2 poko_server-12c1da413d09d48ce85bb46d0629166ce986b5d6.zip |
change password and username
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index 7edc01c..6b0ecec 100644 --- a/src/main.rs +++ b/src/main.rs @@ -183,6 +183,23 @@ async fn delete(data: Json<LogoutForm>, db: &State<Mutex<DB>>) -> (Status, Resul } } +#[derive(Deserialize)] +struct UpdateForm { + id: UID, + session: String, + name: String, + old_password: String, + new_password: String, +} +#[post("/update/info", data="<data>", format="json")] +async fn update_user(data: Json<UpdateForm>, db: &State<Mutex<DB>>) -> (Status, Result<(), Json<String>>) { + let mut db = db.lock().await; + match db.update_user(data.id, &data.session, data.name.clone(), data.old_password.clone(), data.new_password.clone()).await { + Ok(_) => (Status::Ok, Ok(())), + Err(n) => (Status::InternalServerError, Err(n.into())) + } +} + #[derive(Deserialize, Debug)] struct TransferForm { id: UID, @@ -217,7 +234,7 @@ fn rocket() -> _ { rocket::build().manage(Mutex::new(DB::load(Config::new()))) .mount("/", routes![index]) - .mount("/user", routes![login, get_users_by_name, get_user_authenticated, get_user, new_user, get_all_users, logout, logout_all, get_sessions, delete]) + .mount("/user", routes![login, get_users_by_name, get_user_authenticated, get_user, new_user, get_all_users, logout, logout_all, get_sessions, delete, update_user]) .mount("/transfer", routes![transfer_out]) .attach(cors) }
\ No newline at end of file |