jinxapi_github/v1_1_4/request/
pulls_list.rs1#[allow(clippy::too_many_arguments)]
9fn url_string(
10 base_url: &str,
11 p_owner: &str,
12 p_repo: &str,
13 q_state: ::std::option::Option<&str>,
14 q_head: ::std::option::Option<&str>,
15 q_base: ::std::option::Option<&str>,
16 q_sort: ::std::option::Option<&str>,
17 q_direction: ::std::option::Option<&str>,
18 q_per_page: ::std::option::Option<i64>,
19 q_page: ::std::option::Option<i64>,
20) -> Result<String, crate::v1_1_4::ApiError> {
21 let trimmed = if base_url.is_empty() {
22 "https://api.github.com"
23 } else {
24 base_url.trim_end_matches('/')
25 };
26 let mut url = String::with_capacity(trimmed.len() + 32);
27 url.push_str(trimmed);
28 url.push_str("/repos/");
29 ::querylizer::Simple::extend(&mut url, &p_owner, false, &::querylizer::encode_path)?;
30 url.push('/');
31 ::querylizer::Simple::extend(&mut url, &p_repo, false, &::querylizer::encode_path)?;
32 url.push_str("/pulls");
33 let mut prefix = '?';
34 if let Some(value) = &q_state {
35 url.push(::std::mem::replace(&mut prefix, '&'));
36 ::querylizer::Form::extend(&mut url, "state", value, false, &::querylizer::encode_query)?;
37 }
38 if let Some(value) = &q_head {
39 url.push(::std::mem::replace(&mut prefix, '&'));
40 ::querylizer::Form::extend(&mut url, "head", value, false, &::querylizer::encode_query)?;
41 }
42 if let Some(value) = &q_base {
43 url.push(::std::mem::replace(&mut prefix, '&'));
44 ::querylizer::Form::extend(&mut url, "base", value, false, &::querylizer::encode_query)?;
45 }
46 if let Some(value) = &q_sort {
47 url.push(::std::mem::replace(&mut prefix, '&'));
48 ::querylizer::Form::extend(&mut url, "sort", value, false, &::querylizer::encode_query)?;
49 }
50 if let Some(value) = &q_direction {
51 url.push(::std::mem::replace(&mut prefix, '&'));
52 ::querylizer::Form::extend(&mut url, "direction", value, false, &::querylizer::encode_query)?;
53 }
54 if let Some(value) = &q_per_page {
55 url.push(::std::mem::replace(&mut prefix, '&'));
56 ::querylizer::Form::extend(&mut url, "per_page", value, false, &::querylizer::encode_query)?;
57 }
58 if let Some(value) = &q_page {
59 url.push(::std::mem::replace(&mut prefix, '&'));
60 ::querylizer::Form::extend(&mut url, "page", value, false, &::querylizer::encode_query)?;
61 }
62 Ok(url)
63}
64
65#[cfg(feature = "hyper")]
66#[allow(clippy::too_many_arguments)]
67pub fn http_builder(
68 base_url: &str,
69 p_owner: &str,
70 p_repo: &str,
71 q_state: ::std::option::Option<&str>,
72 q_head: ::std::option::Option<&str>,
73 q_base: ::std::option::Option<&str>,
74 q_sort: ::std::option::Option<&str>,
75 q_direction: ::std::option::Option<&str>,
76 q_per_page: ::std::option::Option<i64>,
77 q_page: ::std::option::Option<i64>,
78 h_user_agent: &str,
79 h_accept: ::std::option::Option<&str>,
80) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
81 let url = url_string(
82 base_url,
83 p_owner,
84 p_repo,
85 q_state,
86 q_head,
87 q_base,
88 q_sort,
89 q_direction,
90 q_per_page,
91 q_page,
92 )?;
93 let mut builder = ::http::request::Request::get(url);
94 builder = builder.header(
95 "User-Agent",
96 &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
97 );
98 if let Some(value) = &h_accept {
99 builder = builder.header(
100 "Accept",
101 &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
102 );
103 }
104 Ok(builder)
105}
106
107#[cfg(feature = "hyper")]
108#[inline]
109pub fn hyper_request(
110 builder: ::http::request::Builder,
111) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
112 Ok(builder.body(::hyper::Body::empty())?)
113}
114
115#[cfg(feature = "reqwest")]
116#[allow(clippy::too_many_arguments)]
117pub fn reqwest_builder(
118 base_url: &str,
119 p_owner: &str,
120 p_repo: &str,
121 q_state: ::std::option::Option<&str>,
122 q_head: ::std::option::Option<&str>,
123 q_base: ::std::option::Option<&str>,
124 q_sort: ::std::option::Option<&str>,
125 q_direction: ::std::option::Option<&str>,
126 q_per_page: ::std::option::Option<i64>,
127 q_page: ::std::option::Option<i64>,
128 h_user_agent: &str,
129 h_accept: ::std::option::Option<&str>,
130) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
131 let url = url_string(
132 base_url,
133 p_owner,
134 p_repo,
135 q_state,
136 q_head,
137 q_base,
138 q_sort,
139 q_direction,
140 q_per_page,
141 q_page,
142 )?;
143 let reqwest_url = ::reqwest::Url::parse(&url)?;
144 let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
145 let headers = request.headers_mut();
146 headers.append(
147 "User-Agent",
148 ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
149 );
150 if let Some(value) = &h_accept {
151 headers.append(
152 "Accept",
153 ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
154 );
155 }
156 Ok(request)
157}
158
159#[cfg(feature = "reqwest")]
160#[inline(always)]
161pub fn reqwest_request(
162 builder: ::reqwest::Request,
163) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
164{
165 Ok(builder)
166}
167
168#[cfg(feature = "reqwest-blocking")]
169#[allow(clippy::too_many_arguments)]
170pub fn reqwest_blocking_builder(
171 base_url: &str,
172 p_owner: &str,
173 p_repo: &str,
174 q_state: ::std::option::Option<&str>,
175 q_head: ::std::option::Option<&str>,
176 q_base: ::std::option::Option<&str>,
177 q_sort: ::std::option::Option<&str>,
178 q_direction: ::std::option::Option<&str>,
179 q_per_page: ::std::option::Option<i64>,
180 q_page: ::std::option::Option<i64>,
181 h_user_agent: &str,
182 h_accept: ::std::option::Option<&str>,
183) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
184 let url = url_string(
185 base_url,
186 p_owner,
187 p_repo,
188 q_state,
189 q_head,
190 q_base,
191 q_sort,
192 q_direction,
193 q_per_page,
194 q_page,
195 )?;
196 let reqwest_url = ::reqwest::Url::parse(&url)?;
197 let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
198 let headers = request.headers_mut();
199 headers.append(
200 "User-Agent",
201 ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
202 );
203 if let Some(value) = &h_accept {
204 headers.append(
205 "Accept",
206 ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
207 );
208 }
209 Ok(request)
210}
211
212#[cfg(feature = "reqwest-blocking")]
213#[inline(always)]
214pub fn reqwest_blocking_request(
215 builder: ::reqwest::blocking::Request,
216) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
217{
218 Ok(builder)
219}