tmdb_client/apis/
guest_sessions_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, urlencode};
18use crate::Error;
19
20pub struct GuestSessionsApiClient {
21    configuration: Rc<configuration::Configuration>,
22}
23
24impl GuestSessionsApiClient {
25    pub fn new(configuration: Rc<configuration::Configuration>) -> GuestSessionsApiClient {
26        GuestSessionsApiClient {
27            configuration,
28        }
29    }
30}
31
32pub trait GuestSessionsApi {
33    fn get_guest_session_rated_movies_paginated(
34        &self,
35        guest_session_id: &str,
36        language: Option<&str>,
37        sort_by: Option<&str>,
38    ) -> Result<crate::models::MoviePaginated, Error>;
39    fn get_guest_session_rated_tv_episodes_paginated(
40        &self,
41        guest_session_id: &str,
42        language: Option<&str>,
43        sort_by: Option<&str>,
44    ) -> Result<crate::models::TvEpisodesPaginated, Error>;
45    fn get_guest_session_rated_tv_paginated(
46        &self,
47        guest_session_id: &str,
48        language: Option<&str>,
49        sort_by: Option<&str>,
50    ) -> Result<crate::models::TvPaginated, Error>;
51}
52
53impl GuestSessionsApi for GuestSessionsApiClient {
54    fn get_guest_session_rated_movies_paginated(
55        &self,
56        guest_session_id: &str,
57        language: Option<&str>,
58        sort_by: Option<&str>,
59    ) -> Result<crate::models::MoviePaginated, Error> {
60        let configuration: &configuration::Configuration = self.configuration.borrow();
61        let client = &configuration.client;
62
63        let uri_str = format!(
64            "{}/guest_session/{guest_session_id}/rated/movies",
65            configuration.base_path,
66            guest_session_id = urlencode(guest_session_id)
67        );
68        let mut req_builder = client.get(uri_str.as_str());
69
70        if let Some(ref s) = language {
71            req_builder = req_builder.query(&[("language", &s.to_string())]);
72        }
73        if let Some(ref s) = sort_by {
74            req_builder = req_builder.query(&[("sort_by", &s.to_string())]);
75        }
76        if let Some(ref apikey) = configuration.api_key {
77            req_builder = req_builder.query(&[("api_key", apikey)]);
78        }
79        if let Some(ref user_agent) = configuration.user_agent {
80            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
81        }
82
83        // send request
84        let req = req_builder.build()?;
85
86        Ok(client.execute(req)?.error_for_status()?.json()?)
87    }
88
89    fn get_guest_session_rated_tv_episodes_paginated(
90        &self,
91        guest_session_id: &str,
92        language: Option<&str>,
93        sort_by: Option<&str>,
94    ) -> Result<crate::models::TvEpisodesPaginated, Error> {
95        let configuration: &configuration::Configuration = self.configuration.borrow();
96        let client = &configuration.client;
97
98        let uri_str = format!(
99            "{}/guest_session/{guest_session_id}/rated/tv/episodes",
100            configuration.base_path,
101            guest_session_id = urlencode(guest_session_id)
102        );
103        let mut req_builder = client.get(uri_str.as_str());
104
105        if let Some(ref s) = language {
106            req_builder = req_builder.query(&[("language", &s.to_string())]);
107        }
108        if let Some(ref s) = sort_by {
109            req_builder = req_builder.query(&[("sort_by", &s.to_string())]);
110        }
111        if let Some(ref apikey) = configuration.api_key {
112            req_builder = req_builder.query(&[("api_key", apikey)]);
113        }
114        if let Some(ref user_agent) = configuration.user_agent {
115            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
116        }
117
118        // send request
119        let req = req_builder.build()?;
120
121        Ok(client.execute(req)?.error_for_status()?.json()?)
122    }
123
124    fn get_guest_session_rated_tv_paginated(
125        &self,
126        guest_session_id: &str,
127        language: Option<&str>,
128        sort_by: Option<&str>,
129    ) -> Result<crate::models::TvPaginated, Error> {
130        let configuration: &configuration::Configuration = self.configuration.borrow();
131        let client = &configuration.client;
132
133        let uri_str = format!(
134            "{}/guest_session/{guest_session_id}/rated/tv",
135            configuration.base_path,
136            guest_session_id = urlencode(guest_session_id)
137        );
138        let mut req_builder = client.get(uri_str.as_str());
139
140        if let Some(ref s) = language {
141            req_builder = req_builder.query(&[("language", &s.to_string())]);
142        }
143        if let Some(ref s) = sort_by {
144            req_builder = req_builder.query(&[("sort_by", &s.to_string())]);
145        }
146        if let Some(ref apikey) = configuration.api_key {
147            req_builder = req_builder.query(&[("api_key", apikey)]);
148        }
149        if let Some(ref user_agent) = configuration.user_agent {
150            req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
151        }
152
153        // send request
154        let req = req_builder.build()?;
155
156        Ok(client.execute(req)?.error_for_status()?.json()?)
157    }
158}