dlq_cli/
lib.rs

1use log;
2use color_eyre::eyre::Result;
3use dlq_gateway_grpc::downloader::{downloader_client::DownloaderClient, UrlRequest};
4
5pub struct Client {
6    server: String,
7}
8
9impl Client {
10    pub fn new(server: String) -> Self {
11        Self { server }
12    }
13    async fn downloader(&self) -> Result<DownloaderClient<tonic::transport::Channel>> {
14        log::info!("Getting DownloaderClient {}", &self.server);
15        Ok(DownloaderClient::connect(self.server.clone()).await?)
16    }
17    pub async fn enque_youtube(&self, url: String) -> Result<()> {
18        let mut dlr = self.downloader().await?;
19        let req = tonic::Request::new(UrlRequest {
20            url
21        });
22        log::debug!("Youtube Enqueing {:?}", req);
23        let response = dlr.youtube(req).await?;
24        log::debug!("{:?}", response);
25        Ok(())
26    }
27}