diff --git a/client/src/state/pages/auth.rs b/client/src/state/pages/auth.rs index f2cc787..b684362 100644 --- a/client/src/state/pages/auth.rs +++ b/client/src/state/pages/auth.rs @@ -9,6 +9,9 @@ pub struct AuthState { pub error_message: Option, pub current_field: usize, pub current_cursor_pos: usize, + pub auth_token: Option, + pub user_id: Option, + pub role: Option, } impl AuthState { @@ -20,6 +23,9 @@ impl AuthState { error_message: None, current_field: 0, current_cursor_pos: 0, + auth_token: None, + user_id: None, + role: None, } } } diff --git a/client/src/tui/terminal/grpc_client.rs b/client/src/tui/terminal/grpc_client.rs index 2659fb8..93a5d16 100644 --- a/client/src/tui/terminal/grpc_client.rs +++ b/client/src/tui/terminal/grpc_client.rs @@ -10,11 +10,16 @@ use common::proto::multieko2::table_definition::{ table_definition_client::TableDefinitionClient, ProfileTreeResponse }; +use common::proto::multieko2::auth::{ + auth_service_client::AuthServiceClient, + LoginRequest, LoginResponse +}; pub struct GrpcClient { adresar_client: AdresarClient, table_structure_client: TableStructureServiceClient, table_definition_client: TableDefinitionClient, + auth_client: AuthServiceClient, } impl GrpcClient { @@ -22,11 +27,13 @@ impl GrpcClient { let adresar_client = AdresarClient::connect("http://[::1]:50051").await?; let table_structure_client = TableStructureServiceClient::connect("http://[::1]:50051").await?; let table_definition_client = TableDefinitionClient::connect("http://[::1]:50051").await?; + let auth_client = AuthServiceClient::connect("http://[::1]:50051").await?; Ok(Self { adresar_client, table_structure_client, table_definition_client, + auth_client, }) } @@ -65,4 +72,10 @@ impl GrpcClient { let response = self.table_definition_client.get_profile_tree(request).await?; Ok(response.into_inner()) } + + pub async fn login(&mut self, identifier: String, password: String) -> Result> { + let request = tonic::Request::new(LoginRequest { identifier, password }); + let response = self.auth_client.login(request).await?.into_inner(); + Ok(response) + } }