use pidge_core::TokenStorage;
use crate::auth::file_store::FileStore;
use crate::auth::store::KeychainStore;
use crate::auth::tokens::TokenSet;
use crate::error::ClientError;
pub struct TokenStore;
impl TokenStore {
pub fn load(email: &str, storage: TokenStorage) -> Result<Option<TokenSet>, ClientError> {
match storage {
TokenStorage::Keychain => KeychainStore::load(email),
TokenStorage::File => FileStore::load(email),
}
}
pub fn save(email: &str, tokens: &TokenSet, storage: TokenStorage) -> Result<(), ClientError> {
match storage {
TokenStorage::Keychain => KeychainStore::save(email, tokens),
TokenStorage::File => FileStore::save(email, tokens),
}
}
pub fn delete(email: &str, storage: TokenStorage) -> Result<(), ClientError> {
match storage {
TokenStorage::Keychain => KeychainStore::delete(email),
TokenStorage::File => FileStore::delete(email),
}
}
}