implements authentication/token retrieval/keyring
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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 })
|
||||
|
||||
Reference in New Issue
Block a user