2021-08-20 07:11:06 +00:00
|
|
|
use crate::server::db::cmd::user_exists::*;
|
2020-08-12 06:11:29 +00:00
|
|
|
|
2021-05-30 18:31:01 +00:00
|
|
|
pub async fn get_user_hash(
|
|
|
|
sql_conn: &tokio_postgres::Client,
|
|
|
|
username: &str,
|
|
|
|
is_email: bool,
|
2021-08-13 06:00:23 +00:00
|
|
|
) -> Result<String, String> {
|
2020-08-12 06:11:29 +00:00
|
|
|
/* check that user exists*/
|
2021-05-30 17:08:02 +00:00
|
|
|
if user_exists(sql_conn, username).await {
|
2020-08-12 06:11:29 +00:00
|
|
|
if is_email {
|
2021-05-19 14:51:36 +00:00
|
|
|
for row in
|
2021-08-19 07:51:26 +00:00
|
|
|
&sql_conn.query("SELECT username, email_hash_phc FROM accounts_schema.accounts WHERE username LIKE $1",
|
2021-05-30 17:08:02 +00:00
|
|
|
&[&username]).await.unwrap() {
|
2020-08-12 06:11:29 +00:00
|
|
|
return Ok(row.get(1));
|
|
|
|
}
|
|
|
|
} else {
|
2021-05-19 14:51:36 +00:00
|
|
|
for row in
|
2021-08-19 07:51:26 +00:00
|
|
|
&sql_conn.query("SELECT username, pass_hash_phc FROM accounts_schema.accounts WHERE username LIKE $1",
|
2021-05-30 17:08:02 +00:00
|
|
|
&[&username]).await.unwrap() {
|
2020-08-12 06:11:29 +00:00
|
|
|
return Ok(row.get(1));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-08-13 06:00:23 +00:00
|
|
|
Err("Failed to get username hash of non-existing user.".to_string())
|
2020-08-12 06:11:29 +00:00
|
|
|
}
|