Mountain/IPC/WindAirCommands/
AuthenticateUser.rs1
2use crate::{
7 IPC::WindAirCommands::{AuthResponseDTO, GetAirAddress, GetOrCreateAirClient},
8 dev_log,
9};
10
11#[tauri::command]
12pub async fn AuthenticateUser(
13 username:String,
14
15 password:String,
16
17 provider:String,
18) -> Result<AuthResponseDTO::Struct, String> {
19 dev_log!(
20 "grpc",
21 "[WindAirCommands] AuthenticateUser called: {} via {}",
22 username,
23 provider
24 );
25
26 let air_address = GetAirAddress::Fn()?;
27
28 let client = GetOrCreateAirClient::Fn(air_address).await?;
29
30 let request_id = uuid::Uuid::new_v4().to_string();
31
32 let token = client
33 .authenticate(request_id, username, password, provider)
34 .await
35 .map_err(|e| format!("Authentication failed: {:?}", e))?;
36
37 let result = AuthResponseDTO::Struct { success:true, token, error:None };
38
39 dev_log!("grpc", "[WindAirCommands] Authentication completed: success={}", result.success);
40
41 Ok(result)
42}