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