mirror of
				https://gitlab.com/comunic/comunicapiv3
				synced 2025-11-04 01:24:04 +00:00 
			
		
		
		
	Can create new accounts
This commit is contained in:
		@@ -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")?;
 | 
			
		||||
 
 | 
			
		||||
@@ -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)),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user