diff --git a/server-api/db/src/member.rs b/server-api/db/src/member.rs index 21249c3..6596c73 100644 --- a/server-api/db/src/member.rs +++ b/server-api/db/src/member.rs @@ -64,33 +64,22 @@ impl FromDB for Member { let q = r#"UPDATE members SET status = :status, permissions = :perms, name = :name WHERE id = :id"#; - // TODO: remoev this retarded extra network hit - // technically this is really nice for the user but ultimately it either works or it - // doesn't so like the fucks the point of doing some bs like this - // the next a client queries this they'll get whatever data is in the db - // likewise clients are going likely going to re-get this data since its been updated - // or at least should + if let Ok(conn) = p.get_conn().await { - match Member::get(p, row.id).await { - Response::Row(_) => { - let db_result: Result - = conn.drop_exec(q, params!{ - "id" => row.id, - "status" => row.status, - "name" => row.name, - "perms" => row.permissions - }).await; - match db_result { - Ok(_) => return Response::Success, - Err(_) => return Response::Other(sql_err!("WARN member found | Member::FromDB::update failed - ")) - } - }, - Response::Empty => return Response::Empty, - Response::Other(msg) => return Response::Other(msg), - _ => return Response::Other(sql_err!("Member::FromD::update Bro i dont even")) + let query = conn.drop_exec(q, params!{ + "id" => row.id, + "status" => row.status, + "name" => row.name, + "perms" => row.permissions + }).await; + + return match query { + Ok(_) => Response::Success, + Err(err) => Response::Other(sql_err!(err)) } } - return Response::Other(no_conn!("Member::FromDB::update")); + + return Response::Other(no_conn!("db::Member::update")); } async fn delete(p: &Pool, id: UBigInt) -> Response { @@ -205,4 +194,18 @@ impl Member { return Ok(Response::Empty); } + + pub async fn update_perms(p: &Pool, uid: UBigInt, permissions: UBigInt) -> Result { + //! @return on_sucess Ok(NewPermisionsMask) + //! + let conn = p.get_conn().await?; + conn.drop_exec( + "UPDATE members SET permissions = :perms WHERE id = :id", + params!{ + "id" => uid, + "perms" => permissions + }).await?; + + Ok(permissions) + } }