xpic 0.3.2

List and download Bing wallpapers.
Documentation
use super::{Image, Query, Response, ThumbnailQuery, HP_IMAGE_ARCHIVE_URL, THUMBNAIL_URL};

pub struct Client {
    http: reqwest::Client,
}

impl Client {
    pub fn new(http: reqwest::Client) -> Self {
        Self { http }
    }

    pub async fn hp_image_archive(&self, query: &Query) -> reqwest::Result<Vec<Image>> {
        Ok(self
            .http
            .get(HP_IMAGE_ARCHIVE_URL)
            .query(query)
            .send()
            .await?
            .error_for_status()?
            .json::<Response>()
            .await?
            .images)
    }

    pub async fn thumbnail(&self, query: &ThumbnailQuery) -> reqwest::Result<reqwest::Response> {
        self.http.get(THUMBNAIL_URL).query(query).send().await
    }
}

impl Default for Client {
    fn default() -> Self {
        Self::new(reqwest::Client::new())
    }
}