Private
Public Access
1
0

implements authentication/token retrieval/keyring

This commit is contained in:
2025-05-03 01:06:50 -07:00
parent 461c37bd20
commit 26d54f91d5
11 changed files with 234 additions and 99 deletions

View File

@@ -70,11 +70,6 @@ pub enum ConfigCommands {
SetUsername {
username: String,
},
/// Sets the credential item.
SetCredentialItem {
item: String,
},
}
impl Commands {
@@ -180,19 +175,16 @@ impl DaemonCli {
ConfigCommands::Print => self.print_settings().await,
ConfigCommands::SetServerUrl { url } => self.set_server_url(url).await,
ConfigCommands::SetUsername { username } => self.set_username(username).await,
ConfigCommands::SetCredentialItem { item } => self.set_credential_item(item).await,
}
}
pub async fn print_settings(&mut self) -> Result<()> {
let server_url = KordophoneSettings::server_url(&self.proxy()).unwrap_or_default();
let username = KordophoneSettings::username(&self.proxy()).unwrap_or_default();
let credential_item = KordophoneSettings::credential_item(&self.proxy()).unwrap_or_default();
let table = table!(
[ b->"Server URL", &server_url ],
[ b->"Username", &username ],
[ b->"Credential Item", &credential_item ]
[ b->"Username", &username ]
);
table.printstd();
@@ -209,11 +201,6 @@ impl DaemonCli {
.map_err(|e| anyhow::anyhow!("Failed to set username: {}", e))
}
pub async fn set_credential_item(&mut self, item: String) -> Result<()> {
KordophoneSettings::set_credential_item(&self.proxy(), item.into())
.map_err(|e| anyhow::anyhow!("Failed to set credential item: {}", e))
}
pub async fn delete_all_conversations(&mut self) -> Result<()> {
KordophoneRepository::delete_all_conversations(&self.proxy())
.map_err(|e| anyhow::anyhow!("Failed to delete all conversations: {}", e))

View File

@@ -93,15 +93,17 @@ struct DbClient {
impl DbClient {
fn database_path() -> PathBuf {
let temp_dir = env::temp_dir();
temp_dir.join("kpcli_chat.db")
env::var("KORDOPHONE_DB_PATH").unwrap_or_else(|_| {
let temp_dir = env::temp_dir();
temp_dir.join("kpcli_chat.db").to_str().unwrap().to_string()
}).into()
}
pub fn new() -> Result<Self> {
let path = Self::database_path();
let path_str: &str = path.as_path().to_str().unwrap();
println!("kpcli: Using temporary db at {}", path_str);
println!("kpcli: Using db at {}", path_str);
let db = Database::new(path_str)?;
Ok( Self { database: db })