· 7 years ago · Nov 08, 2018, 05:38 PM
1pub fn register(req: HttpRequest) -> Result<HttpResponse, error::Error> {
2 let headers = req.headers();
3 println!("Hi!");
4 dotenv().ok();
5 let secret_key = env::var("SECRET_KEY").expect("SECRET_KEY must be set");
6 if !headers.contains_key(AUTHORIZATION) || headers[AUTHORIZATION] != secret_key {
7 return Ok(HttpResponse::new(http::StatusCode::FORBIDDEN));
8 }
9 println!("Hello!");
10 let user_form = Json::<UserForm>::extract(&req).wait().unwrap();
11 println!("Hey!");
12 let connection = establish_connection();
13 let salt = compute_salt(&user_form.email);
14 let password = hash_password(&user_form.password, salt.clone());
15 let user = create_user(
16 &connection,
17 &user_form.email,
18 &user_form.admin,
19 &salt,
20 &password
21 );
22 Ok(HttpResponse::Ok().body(format!(
23 "User with email {} has been created successfully!", user.email
24 )))
25}