deeptrans/translator/
qcri.rs

1use crate::translator::response_status;
2use crate::Error;
3
4#[derive(Debug, Default, Eq, PartialEq, Clone, serde::Deserialize, serde::Serialize)]
5pub struct Qcri {
6    /// Your qrci api key. Get one for free here https://mt.qcri.org/api/v1/ref
7    pub api_key: String,
8    pub domain: String,
9}
10
11impl Qcri {
12    #[inline(always)]
13    pub fn base_url(endpoint: &str) -> String {
14        format!("https://mt.qcri.org/api/v1/{endpoint}?")
15    }
16
17    pub async fn domains() -> Result<String, Error> {
18        let response = reqwest::Client::builder()
19            .build()?
20            .get(Qcri::base_url("getDomains"))
21            .send()
22            .await?;
23
24        Ok(response_status(response)?.text().await?)
25    }
26}