refactor 6
This commit is contained in:
@@ -3,31 +3,54 @@ use tauri::AppHandle;
|
||||
use crate::domain::models::{DashboardSnapshot, EssentialsStatusItem, UpdateCandidate};
|
||||
use crate::providers::winget_client;
|
||||
use crate::services::{essentials_service, reconcile_service};
|
||||
use crate::winget::Software;
|
||||
use crate::services::task_event_service::emit_task_event;
|
||||
|
||||
pub async fn initialize_app(app: AppHandle) -> Result<bool, String> {
|
||||
emit_task_event(
|
||||
&app,
|
||||
"env-check",
|
||||
"env-check",
|
||||
"initialize_app",
|
||||
"running",
|
||||
"checking_environment",
|
||||
0.0,
|
||||
None,
|
||||
Some("Checking WinGet environment".to_string()),
|
||||
None,
|
||||
);
|
||||
let app_clone = app.clone();
|
||||
tokio::task::spawn_blocking(move || winget_client::ensure_environment_ready(&app_clone).map(|_| true))
|
||||
let result = tokio::task::spawn_blocking(move || winget_client::ensure_environment_ready(&app_clone).map(|_| true))
|
||||
.await
|
||||
.unwrap_or(Err("Initialization Task Panicked".to_string()))
|
||||
}
|
||||
.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()
|
||||
}
|
||||
match &result {
|
||||
Ok(_) => emit_task_event(
|
||||
&app,
|
||||
"env-check",
|
||||
"env-check",
|
||||
"initialize_app",
|
||||
"completed",
|
||||
"ready",
|
||||
1.0,
|
||||
None,
|
||||
Some("WinGet environment ready".to_string()),
|
||||
None,
|
||||
),
|
||||
Err(err) => emit_task_event(
|
||||
&app,
|
||||
"env-check",
|
||||
"env-check",
|
||||
"initialize_app",
|
||||
"failed",
|
||||
"error",
|
||||
1.0,
|
||||
None,
|
||||
Some(err.clone()),
|
||||
None,
|
||||
),
|
||||
}
|
||||
|
||||
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)
|
||||
result
|
||||
}
|
||||
|
||||
pub async fn get_software_icon(app: AppHandle, id: String, name: String) -> Option<String> {
|
||||
|
||||
Reference in New Issue
Block a user