jinxapi_github/v1_1_4/request/
gists_list.rs

1//! List gists for the authenticated user
2//! 
3//! Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists:
4//! 
5//! [API method documentation](https://docs.github.com/rest/reference/gists#list-gists-for-the-authenticated-user)
6
7
8fn 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}