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