flix_tmdb/api/
mod.rs

1//! TMDB API clients
2
3use 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/// A generic error wrapping Url and Reqwest errors
15#[derive(Debug, thiserror::Error)]
16pub enum Error {
17	/// Url error wrapper
18	#[error("url parse error: {0}")]
19	Url(#[from] url::ParseError),
20	/// Reqwest error wrapper
21	#[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}