jinxapi_github/v1_1_4/request/
gists_list_public.rs

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