search grpc client isolated a bit mode
This commit is contained in:
31
client/src/search/grpc.rs
Normal file
31
client/src/search/grpc.rs
Normal file
@@ -0,0 +1,31 @@
|
||||
// src/search/grpc.rs
|
||||
|
||||
use common::proto::komp_ac::search::{
|
||||
searcher_client::SearcherClient, SearchRequest, SearchResponse,
|
||||
};
|
||||
use tonic::transport::Channel;
|
||||
use anyhow::Result;
|
||||
|
||||
/// Internal search gRPC wrapper
|
||||
#[derive(Clone)]
|
||||
pub struct SearchGrpc {
|
||||
client: SearcherClient<Channel>,
|
||||
}
|
||||
|
||||
impl SearchGrpc {
|
||||
pub fn new(channel: Channel) -> Self {
|
||||
Self {
|
||||
client: SearcherClient::new(channel),
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn search_table(
|
||||
&mut self,
|
||||
table_name: String,
|
||||
query: String,
|
||||
) -> Result<SearchResponse> {
|
||||
let request = tonic::Request::new(SearchRequest { table_name, query });
|
||||
let response = self.client.search_table(request).await?;
|
||||
Ok(response.into_inner())
|
||||
}
|
||||
}
|
||||
@@ -3,5 +3,7 @@
|
||||
pub mod state;
|
||||
pub mod ui;
|
||||
pub mod event;
|
||||
pub mod grpc;
|
||||
|
||||
pub use ui::*;
|
||||
pub use grpc::SearchGrpc;
|
||||
|
||||
@@ -22,9 +22,8 @@ use common::proto::komp_ac::tables_data::{
|
||||
PostTableDataRequest, PostTableDataResponse, PutTableDataRequest,
|
||||
PutTableDataResponse,
|
||||
};
|
||||
use common::proto::komp_ac::search::{
|
||||
searcher_client::SearcherClient, SearchRequest, SearchResponse,
|
||||
};
|
||||
use crate::search::SearchGrpc;
|
||||
use common::proto::komp_ac::search::SearchResponse;
|
||||
use anyhow::{Context, Result};
|
||||
use std::collections::HashMap;
|
||||
use tonic::transport::Channel;
|
||||
@@ -36,7 +35,7 @@ pub struct GrpcClient {
|
||||
table_definition_client: TableDefinitionClient<Channel>,
|
||||
table_script_client: TableScriptClient<Channel>,
|
||||
tables_data_client: TablesDataClient<Channel>,
|
||||
search_client: SearcherClient<Channel>,
|
||||
search_client: SearchGrpc,
|
||||
}
|
||||
|
||||
impl GrpcClient {
|
||||
@@ -52,7 +51,7 @@ impl GrpcClient {
|
||||
TableDefinitionClient::new(channel.clone());
|
||||
let table_script_client = TableScriptClient::new(channel.clone());
|
||||
let tables_data_client = TablesDataClient::new(channel.clone());
|
||||
let search_client = SearcherClient::new(channel.clone());
|
||||
let search_client = SearchGrpc::new(channel.clone());
|
||||
|
||||
Ok(Self {
|
||||
table_structure_client,
|
||||
@@ -247,11 +246,6 @@ impl GrpcClient {
|
||||
table_name: String,
|
||||
query: String,
|
||||
) -> Result<SearchResponse> {
|
||||
let request = tonic::Request::new(SearchRequest { table_name, query });
|
||||
let response = self
|
||||
.search_client
|
||||
.search_table(request)
|
||||
.await?;
|
||||
Ok(response.into_inner())
|
||||
self.search_client.search_table(table_name, query).await
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user