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