tmdb_client/apis/
genres_api.rs

1/*
2 * API
3 *
4 * ## Welcome  This is a place to put general notes and extra information, for internal use.  To get started designing/documenting this API, select a version on the left. # Title No Description
5 *
6 * The version of the OpenAPI document: 3
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use std::borrow::Borrow;
12use std::option::Option;
13use std::rc::Rc;
14
15use reqwest;
16
17use super::configuration;
18use crate::Error;
19
20pub struct GenresApiClient {
21    configuration: Rc<configuration::Configuration>,
22}
23
24impl GenresApiClient {
25    pub fn new(configuration: Rc<configuration::Configuration>) -> GenresApiClient {
26        GenresApiClient {
27            configuration,
28        }
29    }
30}
31
32pub trait GenresApi {
33    fn get_all_movie_genres_list(
34        &self,
35        language: Option<&str>,
36    ) -> Result<crate::models::GenresList, Error>;
37    fn get_all_tv_genres_list(
38        &self,
39        language: Option<&str>,
40    ) -> Result<crate::models::GenresList, Error>;
41    fn get_movies_by_genre_paginated(
42        &self,
43        genre_id: i32,
44        language: Option<&str>,
45        include_adult: Option<bool>,
46        sort_by: Option<&str>,
47    ) -> Result<crate::models::MoviePaginated, Error>;
48}
49
50impl GenresApi for GenresApiClient {
51    fn get_all_movie_genres_list(
52        &self,
53        language: Option<&str>,
54    ) -> Result<crate::models::GenresList, Error> {
55        let configuration: &configuration::Configuration = self.configuration.borrow();
56        let client = &configuration.client;
57
58        let uri_str = format!("{}/genre/movie/list", configuration.base_path);
59        let mut req_builder = client.get(uri_str.as_str());
60
61        if let Some(ref s) = language {
62            req_builder = req_builder.query(&[("language", &s.to_string())]);
63        }
64        if let Some(ref apikey) = configuration.api_key {
65            req_builder = req_builder.query(&[("api_key", apikey)]);
66        }
67        if let Some(ref user_agent) = configuration.user_agent {
68            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
69        }
70
71        // send request
72        let req = req_builder.build()?;
73
74        Ok(client.execute(req)?.error_for_status()?.json()?)
75    }
76
77    fn get_all_tv_genres_list(
78        &self,
79        language: Option<&str>,
80    ) -> Result<crate::models::GenresList, Error> {
81        let configuration: &configuration::Configuration = self.configuration.borrow();
82        let client = &configuration.client;
83
84        let uri_str = format!("{}/genre/tv/list", configuration.base_path);
85        let mut req_builder = client.get(uri_str.as_str());
86
87        if let Some(ref s) = language {
88            req_builder = req_builder.query(&[("language", &s.to_string())]);
89        }
90        if let Some(ref apikey) = configuration.api_key {
91            req_builder = req_builder.query(&[("api_key", apikey)]);
92        }
93        if let Some(ref user_agent) = configuration.user_agent {
94            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
95        }
96
97        // send request
98        let req = req_builder.build()?;
99
100        Ok(client.execute(req)?.error_for_status()?.json()?)
101    }
102
103    fn get_movies_by_genre_paginated(
104        &self,
105        genre_id: i32,
106        language: Option<&str>,
107        include_adult: Option<bool>,
108        sort_by: Option<&str>,
109    ) -> Result<crate::models::MoviePaginated, Error> {
110        let configuration: &configuration::Configuration = self.configuration.borrow();
111        let client = &configuration.client;
112
113        let uri_str = format!(
114            "{}/genre/{genre_id}/movies",
115            configuration.base_path,
116            genre_id = genre_id
117        );
118        let mut req_builder = client.get(uri_str.as_str());
119
120        if let Some(ref s) = language {
121            req_builder = req_builder.query(&[("language", &s.to_string())]);
122        }
123        if let Some(ref s) = include_adult {
124            req_builder = req_builder.query(&[("include_adult", &s.to_string())]);
125        }
126        if let Some(ref s) = sort_by {
127            req_builder = req_builder.query(&[("sort_by", &s.to_string())]);
128        }
129        if let Some(ref apikey) = configuration.api_key {
130            req_builder = req_builder.query(&[("api_key", apikey)]);
131        }
132        if let Some(ref user_agent) = configuration.user_agent {
133            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
134        }
135
136        // send request
137        let req = req_builder.build()?;
138
139        Ok(client.execute(req)?.error_for_status()?.json()?)
140    }
141}