mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-25 13:45:03 +08:00
23a407544a
- Update config commands to query database for providers and settings - Modify provider commands to pass database handle to services - Update MCP commands to use database-backed operations - Refactor prompt and skill commands to leverage database storage - Simplify import/export commands with database integration
65 lines
1.9 KiB
Rust
65 lines
1.9 KiB
Rust
use indexmap::IndexMap;
|
|
use std::str::FromStr;
|
|
|
|
use tauri::State;
|
|
|
|
use crate::app_config::AppType;
|
|
use crate::prompt::Prompt;
|
|
use crate::services::PromptService;
|
|
use crate::store::AppState;
|
|
|
|
#[tauri::command]
|
|
pub async fn get_prompts(
|
|
app: String,
|
|
state: State<'_, AppState>,
|
|
) -> Result<IndexMap<String, Prompt>, String> {
|
|
let app_type = AppType::from_str(&app).map_err(|e| e.to_string())?;
|
|
PromptService::get_prompts(&state, app_type).map_err(|e| e.to_string())
|
|
}
|
|
|
|
#[tauri::command]
|
|
pub async fn upsert_prompt(
|
|
app: String,
|
|
id: String,
|
|
prompt: Prompt,
|
|
state: State<'_, AppState>,
|
|
) -> Result<(), String> {
|
|
let app_type = AppType::from_str(&app).map_err(|e| e.to_string())?;
|
|
PromptService::upsert_prompt(&state, app_type, &id, prompt).map_err(|e| e.to_string())
|
|
}
|
|
|
|
#[tauri::command]
|
|
pub async fn delete_prompt(
|
|
app: String,
|
|
id: String,
|
|
state: State<'_, AppState>,
|
|
) -> Result<(), String> {
|
|
let app_type = AppType::from_str(&app).map_err(|e| e.to_string())?;
|
|
PromptService::delete_prompt(&state, app_type, &id).map_err(|e| e.to_string())
|
|
}
|
|
|
|
#[tauri::command]
|
|
pub async fn enable_prompt(
|
|
app: String,
|
|
id: String,
|
|
state: State<'_, AppState>,
|
|
) -> Result<(), String> {
|
|
let app_type = AppType::from_str(&app).map_err(|e| e.to_string())?;
|
|
PromptService::enable_prompt(&state, app_type, &id).map_err(|e| e.to_string())
|
|
}
|
|
|
|
#[tauri::command]
|
|
pub async fn import_prompt_from_file(
|
|
app: String,
|
|
state: State<'_, AppState>,
|
|
) -> Result<String, String> {
|
|
let app_type = AppType::from_str(&app).map_err(|e| e.to_string())?;
|
|
PromptService::import_from_file(&state, app_type).map_err(|e| e.to_string())
|
|
}
|
|
|
|
#[tauri::command]
|
|
pub async fn get_current_prompt_file_content(app: String) -> Result<Option<String>, String> {
|
|
let app_type = AppType::from_str(&app).map_err(|e| e.to_string())?;
|
|
PromptService::get_current_file_content(app_type).map_err(|e| e.to_string())
|
|
}
|