+ New route for /members/me/nickname

! No testing yet that comes in next patch, with any required fixes
+ db now has specific method for Member::update_nickk
This commit is contained in:
shockrah 2021-02-21 17:21:17 -08:00
parent 7263df8928
commit 5db976b9de
4 changed files with 42 additions and 1 deletions

View File

@ -199,7 +199,7 @@ impl Member {
pub async fn update_perms(p: &Pool, uid: UBigInt, permissions: UBigInt) -> Result<UBigInt, SqlError> {
//! @return on_sucess Ok(NewPermisionsMask)
//!
//! @throws Err(SqlError)
let conn = p.get_conn().await?;
conn.drop_exec(
"UPDATE members SET permissions = :perms WHERE id = :id",
@ -210,4 +210,17 @@ impl Member {
Ok(permissions)
}
pub async fn update_nick(p: &Pool, uid: UBigInt, new_nick: &str) -> Result<(), SqlError> {
let conn = p.get_conn().await?;
conn.drop_exec(
"UPDATE members SET name = :nick WHERE id = id",
params!{
"id" => uid,
"nick" => new_nick
}).await?;
Ok(())
}
}

View File

@ -73,6 +73,7 @@ async fn route_dispatcher(
/* MEMBERS */
(GET, routes::GET_ONLINE_MEMBERS) => members::get_online_members(pool, resp).await,
(GET, routes::GET_MYSELF) => members::get_self(pool, resp, params).await,
(POST, routes::SELF_UPDATE_NICKNAME) => members::post_self_nickname(pool, resp, params).await,
/* OWNER */
(POST, routes::SET_NEW_ADMIN) => admin::new_admin(pool, resp, params).await,
/* META ROUTE */

View File

@ -46,3 +46,29 @@ pub async fn get_self(p: &Pool, response: &mut Response<Body>, params: HashMap<S
}
};
}
pub async fn post_self_nickname(p: &Pool, response: &mut Response<Body>, params: HashMap<String, String>) {
/*
* @param nick <String>
* @respond StatusCode
*
* Prety straightforward response here as its literally just the status code
* Assuming we have good input
*/
let nick = qs_param!(params, "nicK", String);
*response.status_mut() = if let Some(nick) = nick {
let uid = qs_param!(params, "id", u64).unwrap();
match Member::update_nick(p, uid, nick.as_ref()).await {
Ok(_) => StatusCode::OK,
Err(e) => {
eprintln!("{}", e);
StatusCode::INTERNAL_SERVER_ERROR
}
}
} else {
StatusCode::BAD_REQUEST
}
}

View File

@ -16,6 +16,7 @@ pub const MESSAGE_FROM_ID: Rstr = "/message/from_id"; // requires @channel(id)
pub const GET_ONLINE_MEMBERS: Rstr = "/members/get_online"; // requires none
pub const GET_MYSELF: Rstr = "/members/me"; // @requires none
pub const SELF_UPDATE_NICKNAME: Rstr= "/members/me/nickname";
// ADMIN ROUTES