35 lines
1005 B
Rust
35 lines
1005 B
Rust
use anyhow::Result;
|
|
use common::proto::komp_ac::search::{
|
|
SearchCountResponse, SearchRequest, SearchResponse, searcher_client::SearcherClient,
|
|
};
|
|
use tonic::transport::Channel;
|
|
use tonic::Request;
|
|
|
|
#[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(&mut self, request: Request<SearchRequest>) -> Result<SearchResponse> {
|
|
Ok(self.client.search(request).await?.into_inner())
|
|
}
|
|
|
|
pub async fn get_filtered_row(
|
|
&mut self,
|
|
request: Request<SearchRequest>,
|
|
) -> Result<common::proto::komp_ac::tables_data::GetTableDataResponse> {
|
|
Ok(self.client.get_filtered_row(request).await?.into_inner())
|
|
}
|
|
|
|
pub async fn count(&mut self, request: Request<SearchRequest>) -> Result<SearchCountResponse> {
|
|
Ok(self.client.count(request).await?.into_inner())
|
|
}
|
|
}
|