Mountain/IPC/StatusReporter/
mountain_get_comprehensive_status.rs1
2use std::time::SystemTime;
7
8use tauri::Manager;
9
10use crate::{
11 IPC::StatusReporter::{
12 ComprehensiveStatusReport::Struct as ComprehensiveStatusReport,
13 Reporter::Struct as Reporter,
14 },
15 dev_log,
16};
17
18#[tauri::command]
19pub async fn mountain_get_comprehensive_status(
20 app_handle:tauri::AppHandle,
21) -> Result<ComprehensiveStatusReport, String> {
22 dev_log!("lifecycle", "Tauri command: get_comprehensive_status");
23
24 if let Some(reporter) = app_handle.try_state::<Reporter>() {
25 let basic_status = reporter.generate_status_report().await?;
26
27 let performance_metrics = reporter.get_performance_metrics()?;
28
29 let health_status = reporter.get_health_status()?;
30
31 Ok(ComprehensiveStatusReport {
32 basic_status,
33 performance_metrics,
34 health_status,
35 timestamp:SystemTime::now()
36 .duration_since(SystemTime::UNIX_EPOCH)
37 .unwrap_or_default()
38 .as_millis() as u64,
39 })
40 } else {
41 Err("StatusReporter not found in application state".to_string())
42 }
43}