PaperTrader/src/libtrader/server/db/cmd/get_user_hash.rs

27 lines
923 B
Rust
Raw Normal View History

use crate::server::db::cmd::user_exists::*;
2020-08-12 06:11:29 +00:00
pub async fn get_user_hash(
sql_conn: &tokio_postgres::Client,
username: &str,
is_email: bool,
) -> 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
&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
&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));
}
}
}
Err("Failed to get username hash of non-existing user.".to_string())
2020-08-12 06:11:29 +00:00
}