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