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