mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-11 04:16:55 +00:00
move storyteller-web query: set user role
This commit is contained in:
1 parent
73db1b1a49
commit
8f0d347c38
3 files changed
+39
-15
No files matched your search
@@ -1,2 +1,3 @@
|
||||
pub mod list_staff;
|
||||
pub mod list_user_roles;
|
||||
pub mod list_user_roles;
|
||||
pub mod set_user_role;
|
||||
@@ -0,0 +1,31 @@
|
||||
use anyhow::anyhow;
|
||||
use errors::AnyhowResult;
|
||||
use sqlx::MySqlPool;
|
||||
use tokens::users::user::UserToken;
|
||||
|
||||
pub async fn set_user_role(
|
||||
user_token: &UserToken,
|
||||
user_role_slug: &str,
|
||||
mysql_pool: &MySqlPool
|
||||
) -> AnyhowResult<()> {
|
||||
|
||||
let query_result = sqlx::query!(
|
||||
r#"
|
||||
UPDATE users
|
||||
SET
|
||||
user_role_slug = ?
|
||||
WHERE
|
||||
token = ?
|
||||
LIMIT 1
|
||||
"#,
|
||||
user_role_slug,
|
||||
user_token,
|
||||
)
|
||||
.execute(mysql_pool)
|
||||
.await;
|
||||
|
||||
match query_result {
|
||||
Ok(_) => Ok(()),
|
||||
Err(err) => Err(anyhow!("couldn't update user role: {:?}", err))
|
||||
}
|
||||
}
|
||||
+6
-14
@@ -19,6 +19,7 @@ use sqlx::error::Error::Database;
|
||||
use sqlx::mysql::MySqlDatabaseError;
|
||||
use std::fmt;
|
||||
use std::sync::Arc;
|
||||
use database_queries::queries::users::user_roles::set_user_role::set_user_role;
|
||||
|
||||
/// For the URL PathInfo
|
||||
#[derive(Deserialize)]
|
||||
@@ -125,20 +126,11 @@ pub async fn set_user_role_handler(
|
||||
}
|
||||
};
|
||||
|
||||
let query_result = sqlx::query!(
|
||||
r#"
|
||||
UPDATE users
|
||||
SET
|
||||
user_role_slug = ?
|
||||
WHERE
|
||||
token = ?
|
||||
LIMIT 1
|
||||
"#,
|
||||
&request.user_role_slug,
|
||||
&target_user.user_token,
|
||||
)
|
||||
.execute(&server_state.mysql_pool)
|
||||
.await;
|
||||
let query_result = set_user_role(
|
||||
&target_user.user_token,
|
||||
&request.user_role_slug,
|
||||
&server_state.mysql_pool,
|
||||
).await;
|
||||
|
||||
match query_result {
|
||||
Ok(_) => {},
|
||||
|
||||
Reference in new issue
Block a user