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