1use reqwest::Request;
4use reqwest::header;
5
6use crate::Config;
7
8pub mod collections;
9pub mod episodes;
10pub mod movies;
11pub mod seasons;
12pub mod shows;
13
14#[derive(Debug, thiserror::Error)]
16pub enum Error {
17 #[error("url parse error: {0}")]
19 Url(#[from] url::ParseError),
20 #[error("reqwest error: {0}")]
22 Reqwest(#[from] reqwest::Error),
23}
24
25fn make_request(config: &Config, path: &str, language: Option<&str>) -> Result<Request, Error> {
26 let url = config.base_url.join(path)?;
27
28 let mut builder = config.client.get(url).header(
29 header::AUTHORIZATION,
30 format!("Bearer {}", config.bearer_token),
31 );
32 if let Some(ref user_agent) = config.user_agent {
33 builder = builder.header(header::USER_AGENT, user_agent);
34 }
35 if let Some(language) = language {
36 builder = builder.query(&[("language", language)]);
37 }
38
39 Ok(builder.build()?)
40}