deeptrans/translator/
qcri.rs

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
use crate::translator::response_status;
use crate::Error;
use reqwest::blocking as sync;

#[derive(Debug, Default, Clone, Eq, PartialEq)]
pub struct Qcri {
    /// Your qrci api key. Get one for free here https://mt.qcri.org/api/v1/ref
    pub api_key: String,
    pub domain: String,
}

impl Qcri {
    #[inline(always)]
    pub fn base_url(endpoint: &str) -> String {
        format!("https://mt.qcri.org/api/v1/{endpoint}?")
    }

    pub fn domains() -> Result<String, Error> {
        let response = sync::Client::builder()
            .build()?
            .get(Qcri::base_url("getDomains"))
            .send()?;

        Ok(response_status(response)?.text()?)
    }
}