refactor 1
This commit is contained in:
35
src-tauri/src/services/software_state_service.rs
Normal file
35
src-tauri/src/services/software_state_service.rs
Normal file
@@ -0,0 +1,35 @@
|
||||
use tauri::AppHandle;
|
||||
|
||||
use crate::providers::winget_client;
|
||||
use crate::winget::Software;
|
||||
|
||||
pub async fn initialize_app(app: AppHandle) -> Result<bool, String> {
|
||||
let app_clone = app.clone();
|
||||
tokio::task::spawn_blocking(move || winget_client::ensure_environment_ready(&app_clone).map(|_| true))
|
||||
.await
|
||||
.unwrap_or(Err("Initialization Task Panicked".to_string()))
|
||||
}
|
||||
|
||||
pub async fn get_installed_software(app: AppHandle) -> Vec<Software> {
|
||||
tokio::task::spawn_blocking(move || winget_client::list_installed_packages(&app))
|
||||
.await
|
||||
.unwrap_or_default()
|
||||
}
|
||||
|
||||
pub async fn get_updates(app: AppHandle) -> Vec<Software> {
|
||||
tokio::task::spawn_blocking(move || winget_client::list_upgrade_candidates(&app))
|
||||
.await
|
||||
.unwrap_or_default()
|
||||
}
|
||||
|
||||
pub async fn get_software_info(app: AppHandle, id: String) -> Option<Software> {
|
||||
tokio::task::spawn_blocking(move || winget_client::get_package_by_id(&app, &id))
|
||||
.await
|
||||
.unwrap_or(None)
|
||||
}
|
||||
|
||||
pub async fn get_software_icon(app: AppHandle, id: String, name: String) -> Option<String> {
|
||||
tokio::task::spawn_blocking(move || winget_client::resolve_icon(&app, &id, &name))
|
||||
.await
|
||||
.unwrap_or(None)
|
||||
}
|
||||
Reference in New Issue
Block a user