1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
tonic::include_proto!("session");
use super::metadata::ClientInterceptor;
use tonic::codegen::InterceptedService;
use tonic::transport::Channel;
use tonic::Status;
pub type SessionInterceptedClient =
session_client::SessionClient<InterceptedService<Channel, ClientInterceptor>>;
pub async fn make_client(
endpoint: String,
tenant: String,
requestor: String,
) -> Result<SessionInterceptedClient, Status> {
Channel::from_shared(endpoint.clone())
.unwrap()
.connect()
.await
.map(|channel| {
session_client::SessionClient::with_interceptor(
channel,
ClientInterceptor::new(&tenant, &requestor),
)
})
.map_err(|e| Status::unavailable(format!("Error connecting to SESSION service: {}", e)))
}