use tenebrous_rpc::protos::dicebot::UserIdRequest; use tenebrous_rpc::protos::dicebot::{dicebot_client::DicebotClient}; use tonic::{metadata::MetadataValue, transport::Channel, Request}; async fn create_client( shared_secret: &str, ) -> Result, Box> { let channel = Channel::from_static("http://0.0.0.0:9090") .connect() .await?; let bearer = MetadataValue::from_str(&format!("Bearer {}", shared_secret))?; let client = DicebotClient::with_interceptor(channel, move |mut req: Request<()>| { req.metadata_mut().insert("authorization", bearer.clone()); Ok(req) }); Ok(client) } #[tokio::main] async fn main() -> Result<(), Box> { let mut client = create_client("example-key").await?; let request = tonic::Request::new(UserIdRequest { user_id: "@projectmoon:agnos.is".into(), }); let response = client.rooms_for_user(request).await?.into_inner(); println!("Rooms: {:?}", response.rooms); Ok(()) }