game_manager_lib/commands/platforms/
battle_net.rs1use crate::commands::platforms::core::{
4 format_import_empty, format_import_summary, persist_source_games,
5};
6use crate::database::AppState;
7use crate::errors::AppError;
8use crate::sources::battle_net::BattleNetSource;
9use tauri::{AppHandle, Emitter, State};
10use tracing::info;
11
12#[tauri::command]
13pub async fn import_battle_net_games(
14 app: AppHandle,
15 state: State<'_, AppState>,
16) -> Result<String, AppError> {
17 let source = BattleNetSource::new();
18 let games = source.import_installed().await?;
19
20 if games.is_empty() {
21 return Ok(format_import_empty("Battle.net"));
22 }
23
24 let (inserted, updated, _newly_imported) = persist_source_games(&state, games).await?;
25 let message = format_import_summary("Battle.net", inserted, updated);
26 info!("{}", message);
27
28 let _ = app.emit("library_updated", ());
29
30 Ok(message)
31}