diff --git a/client/src/services/grpc_client.rs b/client/src/services/grpc_client.rs index 953afc9..6f6be3b 100644 --- a/client/src/services/grpc_client.rs +++ b/client/src/services/grpc_client.rs @@ -5,7 +5,8 @@ use common::proto::multieko2::adresar::adresar_client::AdresarClient; use common::proto::multieko2::adresar::{AdresarResponse, PostAdresarRequest, PutAdresarRequest}; use common::proto::multieko2::common::{CountResponse, PositionRequest, Empty}; use common::proto::multieko2::table_structure::table_structure_service_client::TableStructureServiceClient; -use common::proto::multieko2::table_structure::TableStructureResponse; +// Import the new request type for table structure +use common::proto::multieko2::table_structure::{TableStructureResponse, GetTableStructureRequest}; use common::proto::multieko2::table_definition::{ table_definition_client::TableDefinitionClient, ProfileTreeResponse, PostTableDefinitionRequest, TableDefinitionResponse, @@ -63,9 +64,20 @@ impl GrpcClient { Ok(response) } - pub async fn get_table_structure(&mut self) -> Result { - let request = tonic::Request::new(Empty::default()); - let response = self.table_structure_client.get_adresar_table_structure(request).await?; + // Updated get_table_structure method + pub async fn get_table_structure( + &mut self, + profile_name: String, + table_name: String, + ) -> Result { + // Create the new request type + let grpc_request = GetTableStructureRequest { + profile_name, + table_name, + }; + let request = tonic::Request::new(grpc_request); + // Call the new gRPC method + let response = self.table_structure_client.get_table_structure(request).await?; Ok(response.into_inner()) } @@ -87,4 +99,3 @@ impl GrpcClient { Ok(response.into_inner()) } } - diff --git a/client/src/services/ui_service.rs b/client/src/services/ui_service.rs index 8e7c95b..6c248e4 100644 --- a/client/src/services/ui_service.rs +++ b/client/src/services/ui_service.rs @@ -17,8 +17,15 @@ impl UiService { let profile_tree = grpc_client.get_profile_tree().await.context("Failed to get profile tree")?; app_state.profile_tree = profile_tree; - // Fetch table structure - let table_structure = grpc_client.get_table_structure().await?; + // TODO for general tables and not hardcoded + let default_profile_name = "default".to_string(); + let default_table_name = "2025_customer".to_string(); + + // Fetch table structure for the default table + let table_structure = grpc_client + .get_table_structure(default_profile_name, default_table_name) + .await + .context("Failed to get initial table structure")?; // Extract the column names from the response let column_names: Vec = table_structure