WIP push-to-talk Letta chat frontend
1use crate::{secrets::SecretName, state::AppState};
2use std::str::FromStr;
3
4#[tauri::command]
5pub async fn has_secret(state: tauri::State<'_, AppState>, name: String) -> Result<bool, ()> {
6 match SecretName::from_str(&name) {
7 Ok(name) => {
8 let res = state
9 .secrets_manager
10 .has_secret(name)
11 .expect("failed to check credential existence");
12
13 Ok(res)
14 }
15 Err(err) => {
16 eprintln!("invalid credential name: {}", err);
17
18 Ok(false)
19 }
20 }
21}
22
23#[tauri::command]
24pub fn set_secret(
25 state: tauri::State<'_, AppState>,
26 name: String,
27 value: String,
28) -> Result<(), ()> {
29 match SecretName::from_str(&name) {
30 Ok(name) => {
31 state
32 .secrets_manager
33 .set_secret(name, value)
34 .expect("failed to set credential");
35
36 Ok(())
37 }
38 Err(err) => {
39 eprintln!("failed to decode secret name: {}", err);
40 Err(())
41 }
42 }
43}
44
45#[tauri::command]
46pub fn delete_secret(state: tauri::State<'_, AppState>, name: String) -> Result<(), ()> {
47 match SecretName::from_str(&name) {
48 Ok(name) => {
49 state
50 .secrets_manager
51 .delete_secret(name)
52 .expect("failed to delete credential");
53
54 Ok(())
55 }
56 Err(err) => {
57 eprintln!("failed to decode secret name: {}", err);
58 Err(())
59 }
60 }
61}