//! # Admin : users management controller //! //! @author Pierre Hubert use crate::api_data::admin::admin_search_user_result_api::AdminSearchUserResult; use crate::api_data::admin::admin_user_info_api::AdminUserInfoAPI; use crate::constants::admin::AdminRole; use crate::data::base_request_handler::BaseRequestHandler; use crate::data::http_request_handler::HttpRequestHandler; use crate::helpers::user_helper; use crate::routes::RequestResult; /// Search for user pub fn search(r: &mut HttpRequestHandler) -> RequestResult { r.check_admin_has_role(AdminRole::MANAGE_USERS)?; let name = r.post_string_opt("name", 0, true)?; let email = r.post_string_opt("email", 0, true)?; let results = user_helper::search_user_admin(&name, &email, 50)?; r.set_response(results.into_iter().map(AdminSearchUserResult::new).collect::>()) } /// Get information about a single user pub fn get_single(r: &mut HttpRequestHandler) -> RequestResult { r.check_admin_has_role(AdminRole::MANAGE_USERS)?; let user_id = r.post_user_id("user_id")?; let user = user_helper::find_user_by_id(&user_id)?; r.set_response(AdminUserInfoAPI::new(user)) }