jinxapi_github/v1_1_4/request/
gists_list.rs1fn url_string(
9 base_url: &str,
10 q_since: ::std::option::Option<&str>,
11 q_per_page: ::std::option::Option<i64>,
12 q_page: ::std::option::Option<i64>,
13) -> Result<String, crate::v1_1_4::ApiError> {
14 let trimmed = if base_url.is_empty() {
15 "https://api.github.com"
16 } else {
17 base_url.trim_end_matches('/')
18 };
19 let mut url = String::with_capacity(trimmed.len() + 22);
20 url.push_str(trimmed);
21 url.push_str("/gists");
22 let mut prefix = '?';
23 if let Some(value) = &q_since {
24 url.push(::std::mem::replace(&mut prefix, '&'));
25 ::querylizer::Form::extend(&mut url, "since", value, false, &::querylizer::encode_query)?;
26 }
27 if let Some(value) = &q_per_page {
28 url.push(::std::mem::replace(&mut prefix, '&'));
29 ::querylizer::Form::extend(&mut url, "per_page", value, false, &::querylizer::encode_query)?;
30 }
31 if let Some(value) = &q_page {
32 url.push(::std::mem::replace(&mut prefix, '&'));
33 ::querylizer::Form::extend(&mut url, "page", value, false, &::querylizer::encode_query)?;
34 }
35 Ok(url)
36}
37
38#[cfg(feature = "hyper")]
39pub fn http_builder(
40 base_url: &str,
41 q_since: ::std::option::Option<&str>,
42 q_per_page: ::std::option::Option<i64>,
43 q_page: ::std::option::Option<i64>,
44 h_user_agent: &str,
45 h_accept: ::std::option::Option<&str>,
46) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
47 let url = url_string(
48 base_url,
49 q_since,
50 q_per_page,
51 q_page,
52 )?;
53 let mut builder = ::http::request::Request::get(url);
54 builder = builder.header(
55 "User-Agent",
56 &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
57 );
58 if let Some(value) = &h_accept {
59 builder = builder.header(
60 "Accept",
61 &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
62 );
63 }
64 Ok(builder)
65}
66
67#[cfg(feature = "hyper")]
68#[inline]
69pub fn hyper_request(
70 builder: ::http::request::Builder,
71) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
72 Ok(builder.body(::hyper::Body::empty())?)
73}
74
75#[cfg(feature = "reqwest")]
76pub fn reqwest_builder(
77 base_url: &str,
78 q_since: ::std::option::Option<&str>,
79 q_per_page: ::std::option::Option<i64>,
80 q_page: ::std::option::Option<i64>,
81 h_user_agent: &str,
82 h_accept: ::std::option::Option<&str>,
83) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
84 let url = url_string(
85 base_url,
86 q_since,
87 q_per_page,
88 q_page,
89 )?;
90 let reqwest_url = ::reqwest::Url::parse(&url)?;
91 let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
92 let headers = request.headers_mut();
93 headers.append(
94 "User-Agent",
95 ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
96 );
97 if let Some(value) = &h_accept {
98 headers.append(
99 "Accept",
100 ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
101 );
102 }
103 Ok(request)
104}
105
106#[cfg(feature = "reqwest")]
107#[inline(always)]
108pub fn reqwest_request(
109 builder: ::reqwest::Request,
110) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
111{
112 Ok(builder)
113}
114
115#[cfg(feature = "reqwest-blocking")]
116pub fn reqwest_blocking_builder(
117 base_url: &str,
118 q_since: ::std::option::Option<&str>,
119 q_per_page: ::std::option::Option<i64>,
120 q_page: ::std::option::Option<i64>,
121 h_user_agent: &str,
122 h_accept: ::std::option::Option<&str>,
123) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
124 let url = url_string(
125 base_url,
126 q_since,
127 q_per_page,
128 q_page,
129 )?;
130 let reqwest_url = ::reqwest::Url::parse(&url)?;
131 let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
132 let headers = request.headers_mut();
133 headers.append(
134 "User-Agent",
135 ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
136 );
137 if let Some(value) = &h_accept {
138 headers.append(
139 "Accept",
140 ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
141 );
142 }
143 Ok(request)
144}
145
146#[cfg(feature = "reqwest-blocking")]
147#[inline(always)]
148pub fn reqwest_blocking_request(
149 builder: ::reqwest::blocking::Request,
150) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
151{
152 Ok(builder)
153}