use crate::{secrets::SecretName, state::AppState}; use std::str::FromStr; #[tauri::command] pub async fn has_secret(state: tauri::State<'_, AppState>, name: String) -> Result { match SecretName::from_str(&name) { Ok(name) => { let res = state .secrets_manager .has_secret(name) .expect("failed to check credential existence"); Ok(res) } Err(err) => { eprintln!("invalid credential name: {}", err); Ok(false) } } } #[tauri::command] pub fn set_secret( state: tauri::State<'_, AppState>, name: String, value: String, ) -> Result<(), ()> { match SecretName::from_str(&name) { Ok(name) => { state .secrets_manager .set_secret(name, value) .expect("failed to set credential"); Ok(()) } Err(err) => { eprintln!("failed to decode secret name: {}", err); Err(()) } } } #[tauri::command] pub fn delete_secret(state: tauri::State<'_, AppState>, name: String) -> Result<(), ()> { match SecretName::from_str(&name) { Ok(name) => { state .secrets_manager .delete_secret(name) .expect("failed to delete credential"); Ok(()) } Err(err) => { eprintln!("failed to decode secret name: {}", err); Err(()) } } }