jinxapi_github/v1_1_4/request/
meta_get_zen.rs

1//! Get the Zen of GitHub
2//! 
3//! Get a random sentence from the Zen of GitHub
4
5
6#[cfg(feature = "hyper")]
7pub fn http_builder(
8    base_url: &str,
9    h_user_agent: &str,
10    h_accept: ::std::option::Option<&str>,
11) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
12    let default_url = concat!("https://api.github.com", "/zen");
13    let url = if base_url.is_empty() {
14        ::http::uri::Uri::from_static(default_url)
15    } else {
16        let trimmed = base_url.trim_end_matches('/');
17        let mut url = String::with_capacity(trimmed.len() + 4);
18        url.push_str(trimmed);
19        url.push_str(&default_url[22..]);
20        url.try_into().map_err(::http::Error::from)?
21    };
22    let mut builder = ::http::request::Request::get(url);
23    builder = builder.header(
24        "User-Agent",
25        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
26    );
27    if let Some(value) = &h_accept {
28        builder = builder.header(
29            "Accept",
30            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
31        );
32    }
33    Ok(builder)
34}
35
36#[cfg(feature = "hyper")]
37#[inline]
38pub fn hyper_request(
39    builder: ::http::request::Builder,
40) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
41    Ok(builder.body(::hyper::Body::empty())?)
42}
43
44#[cfg(feature = "reqwest")]
45pub fn reqwest_builder(
46    base_url: &str,
47    h_user_agent: &str,
48    h_accept: ::std::option::Option<&str>,
49) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
50    let default_url = concat!("https://api.github.com", "/zen");
51    let reqwest_url = if base_url.is_empty() {
52        ::reqwest::Url::parse(default_url)?
53    } else {
54        let trimmed = base_url.trim_end_matches('/');
55        let mut url = String::with_capacity(trimmed.len() + 4);
56        url.push_str(trimmed);
57        url.push_str(&default_url[22..]);
58        ::reqwest::Url::parse(&url)?
59    };
60    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
61    let headers = request.headers_mut();
62    headers.append(
63        "User-Agent",
64        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
65    );
66    if let Some(value) = &h_accept {
67        headers.append(
68            "Accept",
69            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
70        );
71    }
72    Ok(request)
73}
74
75#[cfg(feature = "reqwest")]
76#[inline(always)]
77pub fn reqwest_request(
78    builder: ::reqwest::Request,
79) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
80{
81    Ok(builder)
82}
83
84#[cfg(feature = "reqwest-blocking")]
85pub fn reqwest_blocking_builder(
86    base_url: &str,
87    h_user_agent: &str,
88    h_accept: ::std::option::Option<&str>,
89) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
90    let default_url = concat!("https://api.github.com", "/zen");
91    let reqwest_url = if base_url.is_empty() {
92        ::reqwest::Url::parse(default_url)?
93    } else {
94        let trimmed = base_url.trim_end_matches('/');
95        let mut url = String::with_capacity(trimmed.len() + 4);
96        url.push_str(trimmed);
97        url.push_str(&default_url[22..]);
98        ::reqwest::Url::parse(&url)?
99    };
100    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
101    let headers = request.headers_mut();
102    headers.append(
103        "User-Agent",
104        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
105    );
106    if let Some(value) = &h_accept {
107        headers.append(
108            "Accept",
109            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
110        );
111    }
112    Ok(request)
113}
114
115#[cfg(feature = "reqwest-blocking")]
116#[inline(always)]
117pub fn reqwest_blocking_request(
118    builder: ::reqwest::blocking::Request,
119) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
120{
121    Ok(builder)
122}