1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2025-06-20 16:35:17 +00:00

Can create new accounts

This commit is contained in:
2020-07-13 13:35:25 +02:00
parent 1974c782b5
commit c4f5447230
6 changed files with 58 additions and 4 deletions

View File

@ -6,6 +6,7 @@ use crate::api_data::res_get_security_questions::ResGetSecurityQuestions;
use crate::controllers::routes::RequestResult;
use crate::data::error::ResultBoxError;
use crate::data::http_request_handler::HttpRequestHandler;
use crate::data::new_account::NewAccount;
use crate::data::user::User;
use crate::helpers::{account_helper, user_helper};
@ -25,6 +26,30 @@ impl HttpRequestHandler {
}
}
/// Create a new account
pub fn create(r: &mut HttpRequestHandler) -> RequestResult {
// TODO : limit request
// Get & check email
let email = r.post_email("emailAddress")?;
if account_helper::exists_mail(&email)? {
r.conflict("This email address already belongs to an account!".to_string())?;
}
let new_account = NewAccount {
first_name: r.post_content("firstName", 3, true)?,
last_name: r.post_content("lastName", 3, true)?,
email,
password: r.post_string_opt("password", 3, true)?,
};
account_helper::create(&new_account)?;
// TODO : limit request
r.success("Account created!")
}
/// Sign in user
pub fn login_user(request: &mut HttpRequestHandler) -> RequestResult {
let email = request.post_email("userMail")?;

View File

@ -67,6 +67,7 @@ pub fn get_routes() -> Vec<Route> {
Route::get_without_login("/", Box::new(server_controller::main_index)),
// Account controller
Route::post("/account/create", Box::new(account_controller::create)),
Route::post_without_login("/account/login", Box::new(account_controller::login_user)),
Route::post_without_login("/user/connectUSER", Box::new(account_controller::login_user)),
Route::post("/account/logout", Box::new(account_controller::logout_user)),