mod models;
mod operations;
mod schema;
use crate::biome::refresh_tokens::store::{RefreshTokenError, RefreshTokenStore};
use crate::database::ConnectionPool;
use operations::{
add_token::RefreshTokenStoreAddTokenOperation,
fetch_token::RefreshTokenStoreFetchTokenOperation,
remove_token::RefreshTokenStoreRemoveTokenOperation,
update_token::RefreshTokenStoreUpdateTokenOperation, RefreshTokenStoreOperations,
};
pub struct DieselRefreshTokenStore {
connection_pool: ConnectionPool,
}
impl DieselRefreshTokenStore {
pub fn new(connection_pool: ConnectionPool) -> Self {
Self { connection_pool }
}
}
impl RefreshTokenStore for DieselRefreshTokenStore {
fn add_token(&self, user_id: &str, token: &str) -> Result<(), RefreshTokenError> {
RefreshTokenStoreOperations::new(&*self.connection_pool.get()?).add_token(user_id, token)
}
fn remove_token(&self, user_id: &str) -> Result<(), RefreshTokenError> {
RefreshTokenStoreOperations::new(&*self.connection_pool.get()?).remove_token(user_id)
}
fn update_token(&self, user_id: &str, token: &str) -> Result<(), RefreshTokenError> {
RefreshTokenStoreOperations::new(&*self.connection_pool.get()?).update_token(user_id, token)
}
fn fetch_token(&self, user_id: &str) -> Result<String, RefreshTokenError> {
RefreshTokenStoreOperations::new(&*self.connection_pool.get()?).fetch_token(user_id)
}
}