From 515f8d2ffc505125ea3a940878b7061f17a7e479 Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Mon, 13 Jul 2020 13:07:50 +0200 Subject: [PATCH] Start to implement new route --- src/controllers/account_controller.rs | 25 ++++++++++++++++++++++++- src/controllers/routes.rs | 1 + 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/controllers/account_controller.rs b/src/controllers/account_controller.rs index a6a3861..8b17641 100644 --- a/src/controllers/account_controller.rs +++ b/src/controllers/account_controller.rs @@ -2,13 +2,27 @@ use crate::api_data::current_user_id::CurrentUserID; use crate::api_data::login_success::LoginSuccess; use crate::api_data::res_check_email_exists::ResCheckEmailExists; use crate::controllers::routes::RequestResult; +use crate::data::error::ResultBoxError; use crate::data::http_request_handler::HttpRequestHandler; -use crate::helpers::account_helper; +use crate::data::user::User; +use crate::helpers::{account_helper, user_helper}; /// Account controller /// /// @author Pierre Hubert +impl HttpRequestHandler { + /// Get information about a user based on its email address specified in the request + pub fn post_user_info_from_email(&mut self, field: &str) -> ResultBoxError { + let email = self.post_email(field)?; + + self.ok_or_not_found( + user_helper::find_user_by_email(&email), + format!("Requested user in '{}' not found!", email).as_str(), + ) + } +} + /// Sign in user pub fn login_user(request: &mut HttpRequestHandler) -> RequestResult { let email = request.post_email("userMail")?; @@ -59,4 +73,13 @@ pub fn exists_mail(r: &mut HttpRequestHandler) -> RequestResult { let email = r.post_email("email")?; r.set_response(ResCheckEmailExists::new(account_helper::exists_mail(&email)?)) +} + +/// Check out whether a given user has set security questions or not +pub fn has_security_questions(r: &mut HttpRequestHandler) -> RequestResult { + let user = r.post_user_info_from_email("email")?; + + // TODO : continue implementation + println!("{:#?}", user); + r.success("implement me") } \ No newline at end of file diff --git a/src/controllers/routes.rs b/src/controllers/routes.rs index f60ca25..f3b96f5 100644 --- a/src/controllers/routes.rs +++ b/src/controllers/routes.rs @@ -75,6 +75,7 @@ pub fn get_routes() -> Vec { Route::post("/account/id", Box::new(account_controller::user_id)), Route::post("/user/getCurrentUserID", Box::new(account_controller::user_id)), Route::post_without_login("/account/exists_email", Box::new(account_controller::exists_mail)), + Route::post_without_login("/account/has_security_questions", Box::new(account_controller::has_security_questions)), // User controller Route::post_without_login("/user/getInfo", Box::new(user_controller::get_single)),