diff --git a/src-tauri/src/commands/conversation.rs b/src-tauri/src/commands/conversation.rs new file mode 100644 index 0000000..3de8e5c --- /dev/null +++ b/src-tauri/src/commands/conversation.rs @@ -0,0 +1,18 @@ +use crate::models::Conversation; +use crate::state::{AppState, BASE_URL}; + +#[tauri::command] +pub async fn list_conversations( + state: tauri::State<'_, AppState>, + workspace_id: String, +) -> Result, String> { + state + .client + .get(format!("{}/conversations?workspace_id={}", BASE_URL, workspace_id)) + .send() + .await + .map_err(|e| e.to_string())? + .json() + .await + .map_err(|e| e.to_string()) +} diff --git a/src-tauri/src/commands/mod.rs b/src-tauri/src/commands/mod.rs index 22d12a3..4856d1a 100644 --- a/src-tauri/src/commands/mod.rs +++ b/src-tauri/src/commands/mod.rs @@ -1 +1,3 @@ +pub mod conversation; pub mod user; +pub mod workspace; diff --git a/src-tauri/src/commands/workspace.rs b/src-tauri/src/commands/workspace.rs new file mode 100644 index 0000000..1d177c9 --- /dev/null +++ b/src-tauri/src/commands/workspace.rs @@ -0,0 +1,15 @@ +use crate::models::Workspace; +use crate::state::{AppState, BASE_URL}; + +#[tauri::command] +pub async fn list_workspaces(state: tauri::State<'_, AppState>) -> Result, String> { + state + .client + .get(format!("{}/workspaces", BASE_URL)) + .send() + .await + .map_err(|e| e.to_string())? + .json() + .await + .map_err(|e| e.to_string()) +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index dc63d34..bbee861 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -8,7 +8,11 @@ use state::AppState; pub fn run() { tauri::Builder::default() .manage(AppState::new()) - .invoke_handler(tauri::generate_handler![commands::user::login]) + .invoke_handler(tauri::generate_handler![ + commands::user::login, + commands::workspace::list_workspaces, + commands::conversation::list_conversations, + ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }