torii_storage_postgres/
password.rs1use crate::PostgresStorage;
2use async_trait::async_trait;
3use torii_core::UserId;
4use torii_core::error::StorageError;
5use torii_core::storage::PasswordStorage;
6
7#[async_trait]
8impl PasswordStorage for PostgresStorage {
9 async fn set_password_hash(
10 &self,
11 user_id: &UserId,
12 hash: &str,
13 ) -> Result<(), torii_core::Error> {
14 sqlx::query("UPDATE users SET password_hash = $1 WHERE id::text = $2")
15 .bind(hash)
16 .bind(user_id.as_str())
17 .execute(&self.pool)
18 .await
19 .map_err(|_| StorageError::Database("Failed to set password hash".to_string()))?;
20 Ok(())
21 }
22
23 async fn get_password_hash(
24 &self,
25 user_id: &UserId,
26 ) -> Result<Option<String>, torii_core::Error> {
27 let result = sqlx::query_scalar("SELECT password_hash FROM users WHERE id::text = $1")
28 .bind(user_id.as_str())
29 .fetch_optional(&self.pool)
30 .await
31 .map_err(|_| StorageError::Database("Failed to get password hash".to_string()))?;
32 Ok(result)
33 }
34}