parse_book_source/search/
mod.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 reqwest::Response;

use crate::http_client::HttpClient;
use crate::utils::{parse_url, Params};
use crate::Result;

#[derive(Debug, Clone)]
pub struct Search {
    pub url: String,
}

impl<T> From<T> for Search
where
    T: Into<String>,
{
    fn from(url: T) -> Self {
        Self { url: url.into() }
    }
}

impl Search {
    pub async fn get_book_list(&self, client: &HttpClient, params: Params) -> Result<Response> {
        let url = parse_url(&self.url, &params, None)?;
        client.get(&url).await
    }
}