mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2025-07-06 15:52:48 +00:00
Make all HTTP routes asynchronous
This commit is contained in:
@ -20,7 +20,7 @@ use crate::routes::RequestResult;
|
||||
use crate::utils::date_utils::time;
|
||||
|
||||
/// Create a new administrator account
|
||||
pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn create(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let email = r.post_email("mail")?;
|
||||
let name = r.post_string_opt("name", 3, true)?;
|
||||
|
||||
@ -34,7 +34,7 @@ pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Get admin auth options
|
||||
pub fn get_auth_options(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn get_auth_options(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let mail = r.post_email("mail")?;
|
||||
let admin = admin_account_helper::find_admin_by_email(&mail)?;
|
||||
let keys = admin_account_key_helper::get_admin_keys(admin.id)?;
|
||||
@ -43,7 +43,7 @@ pub fn get_auth_options(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Login admin using a reset token
|
||||
pub fn auth_with_reset_token(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn auth_with_reset_token(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let reset_token = r.post_string("token")?;
|
||||
let admin = admin_account_helper::find_admin_by_email(&r.post_email("mail")?)?;
|
||||
|
||||
@ -65,19 +65,19 @@ pub fn auth_with_reset_token(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Sign out current admin
|
||||
pub fn sign_out(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn sign_out(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
admin_access_token_helper::destroy(r.admin_id()?)?;
|
||||
|
||||
r.ok()
|
||||
}
|
||||
|
||||
/// Get current admin ID
|
||||
pub fn get_admin_id(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn get_admin_id(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
r.set_response(AdminIDAPI::new(r.admin_id()?))
|
||||
}
|
||||
|
||||
/// Get and return the list of administrators
|
||||
pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let list = admin_account_helper::get_list()?
|
||||
.iter()
|
||||
.map(AdminInfoAPI::new)
|
||||
@ -87,7 +87,7 @@ pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Get current admin information
|
||||
pub fn get_admin_info(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn get_admin_info(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let admin = match r.has_post_parameter("id") {
|
||||
false => admin_account_helper::find_admin_by_id(r.admin_id()?)?,
|
||||
true => {
|
||||
@ -100,7 +100,7 @@ pub fn get_admin_info(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Update general settings
|
||||
pub fn update_general_settings(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn update_general_settings(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let admin_id = r.post_admin_id("id")?;
|
||||
let new_name = r.post_string("name")?;
|
||||
let new_email = r.post_email("email")?;
|
||||
@ -122,7 +122,7 @@ pub fn update_general_settings(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Generate access reset token
|
||||
pub fn generate_reset_token(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn generate_reset_token(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let admin_id = r.post_admin_id("id")?;
|
||||
|
||||
if admin_id != r.admin_id()? {
|
||||
|
@ -38,7 +38,7 @@ impl HttpRequestHandler {
|
||||
}
|
||||
|
||||
/// Get an admin keys
|
||||
pub fn get_keys_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn get_keys_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let admin_id = r.post_admin_id("id")?;
|
||||
|
||||
if admin_id != r.admin_id()? {
|
||||
@ -52,7 +52,7 @@ pub fn get_keys_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
|
||||
|
||||
/// Generate a challenge to register a new key
|
||||
pub fn challenge_register_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn challenge_register_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let wan = get_wan();
|
||||
|
||||
let (res, state) = wan.generate_challenge_register(&r.admin_id()?.id_str(), false)?;
|
||||
@ -63,7 +63,7 @@ pub fn challenge_register_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Register key
|
||||
pub fn register_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn register_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let key_name = r.post_string("name")?;
|
||||
let key_password = r.post_string("password")?;
|
||||
|
||||
@ -89,7 +89,7 @@ pub fn register_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Delete an admin auth key
|
||||
pub fn delete_auth_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn delete_auth_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let admin_id = r.post_admin_id("adminID")?;
|
||||
let key_id = r.post_u64("keyID")?;
|
||||
|
||||
@ -116,7 +116,7 @@ pub fn delete_auth_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Generate a challenge to authenticate with a security key
|
||||
pub fn challenge_auth_with_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn challenge_auth_with_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let key = r.post_admin_auth_key("mail", "key_id")?;
|
||||
|
||||
let (challenge_response, auth_state) =
|
||||
@ -128,7 +128,7 @@ pub fn challenge_auth_with_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Authenticate a user with a security key
|
||||
pub fn auth_with_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn auth_with_key(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let key = r.post_admin_auth_key("mail", "key_id")?;
|
||||
let credentials = r.post_auth_public_key_credential("credential")?;
|
||||
|
||||
|
@ -10,7 +10,7 @@ use crate::constants::admin::AdminRole;
|
||||
use crate::api_data::admin::admin_log_api::AdminLogAPI;
|
||||
|
||||
/// Get the list of logs of the user
|
||||
pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let logs = match admin_roles_helper::has_role(r.admin_id()?, AdminRole::ACCESS_ALL_ADMINS_LOGS)? {
|
||||
true => admin_log_helper::get_all_admin_logs(),
|
||||
false => admin_log_helper::get_admin_logs(r.admin_id()?)
|
||||
|
@ -12,7 +12,7 @@ use crate::helpers::admin_roles_helper;
|
||||
use crate::routes::RequestResult;
|
||||
|
||||
/// Get the list of roles embedded in the code
|
||||
pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let res = ADMIN_ROLES_LIST.iter()
|
||||
.map(AdminRoleDetailsAPI::new)
|
||||
.collect::<Vec<AdminRoleDetailsAPI>>();
|
||||
@ -21,7 +21,7 @@ pub fn get_list(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Toggle the status of a role for an admin
|
||||
pub fn toggle(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn toggle(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
let admin_id = r.post_admin_id("adminID")?;
|
||||
let enable = r.post_bool("enable")?;
|
||||
let role_str = r.post_string("role")?;
|
||||
|
@ -15,7 +15,7 @@ use crate::helpers::admin_log_helper::log_admin_action;
|
||||
use crate::routes::RequestResult;
|
||||
|
||||
/// Search for user
|
||||
pub fn search(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn search(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
r.check_admin_has_role(AdminRole::MANAGE_USERS)?;
|
||||
|
||||
let name = r.post_string_opt("name", 0, true)?;
|
||||
@ -27,7 +27,7 @@ pub fn search(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Get information about a single user
|
||||
pub fn get_single(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn get_single(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
r.check_admin_has_role(AdminRole::MANAGE_USERS)?;
|
||||
|
||||
let user_id = r.post_user_id("user_id")?;
|
||||
@ -40,7 +40,7 @@ pub fn get_single(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Change the email address of a Comunic user
|
||||
pub fn change_email_address(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn change_email_address(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
r.check_admin_has_role(AdminRole::MANAGE_USERS)?;
|
||||
|
||||
let user_id = r.post_user_id("user_id")?;
|
||||
@ -67,7 +67,7 @@ pub fn change_email_address(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
}
|
||||
|
||||
/// Create a password reset link for a Comunic user
|
||||
pub fn create_password_reset_link(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
pub async fn create_password_reset_link(r: &mut HttpRequestHandler) -> RequestResult {
|
||||
r.check_admin_has_role(AdminRole::MANAGE_USERS)?;
|
||||
|
||||
let user_id = r.post_user_id("user_id")?;
|
||||
|
Reference in New Issue
Block a user