1use crate::token;
2use hyper::{client::HttpConnector, Request, Uri};
3
4pub struct Client {
5 http: hyper::Client<HttpConnector>,
6 uri: Uri,
7 key: String,
8 secret: String,
9}
10
11impl Client {
12 pub fn new(uri: Uri, key: String, secret: String) -> Self {
13 assert!(uri.scheme().is_some(), "base uri must have a scheme");
14 assert!(uri.authority().is_some(), "base uri must have an authority");
15 Self {
16 http: hyper::Client::new(),
17 uri: uri,
18 key,
19 secret,
20 }
21 }
22
23 pub fn create_room(&self) {
24 // let mut uri = url.clone();
25 // uri.set_path_and_query()
26
27 let uri = Uri::builder()
28 .scheme(self.uri.scheme().unwrap().clone())
29 .authority(self.uri.authority().unwrap().clone())
30 .path_and_query("twirp/livekit.RoomService/CreateRoom")
31 .build();
32
33 // token::create(api_key, secret_key, room_name, participant_name)
34 self.http.request(req)
35 }
36}