jinxapi_github/v1_1_4/request/
activity_get_feeds.rs

1//! Get feeds
2//! 
3//! GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user:
4//! 
5//! *   **Timeline**: The GitHub global public timeline
6//! *   **User**: The public timeline for any user, using [URI template](https://docs.github.com/rest/overview/resources-in-the-rest-api#hypermedia)
7//! *   **Current user public**: The public timeline for the authenticated user
8//! *   **Current user**: The private timeline for the authenticated user
9//! *   **Current user actor**: The private timeline for activity created by the authenticated user
10//! *   **Current user organizations**: The private timeline for the organizations the authenticated user is a member of.
11//! *   **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub.
12//! 
13//! **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://docs.github.com/rest/overview/other-authentication-methods#basic-authentication) since current feed URIs use the older, non revocable auth tokens.
14//! 
15//! [API method documentation](https://docs.github.com/rest/reference/activity#get-feeds)
16
17
18#[cfg(feature = "hyper")]
19pub fn http_builder(
20    base_url: &str,
21    h_user_agent: &str,
22    h_accept: ::std::option::Option<&str>,
23) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
24    let default_url = concat!("https://api.github.com", "/feeds");
25    let url = if base_url.is_empty() {
26        ::http::uri::Uri::from_static(default_url)
27    } else {
28        let trimmed = base_url.trim_end_matches('/');
29        let mut url = String::with_capacity(trimmed.len() + 6);
30        url.push_str(trimmed);
31        url.push_str(&default_url[22..]);
32        url.try_into().map_err(::http::Error::from)?
33    };
34    let mut builder = ::http::request::Request::get(url);
35    builder = builder.header(
36        "User-Agent",
37        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
38    );
39    if let Some(value) = &h_accept {
40        builder = builder.header(
41            "Accept",
42            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
43        );
44    }
45    Ok(builder)
46}
47
48#[cfg(feature = "hyper")]
49#[inline]
50pub fn hyper_request(
51    builder: ::http::request::Builder,
52) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
53    Ok(builder.body(::hyper::Body::empty())?)
54}
55
56#[cfg(feature = "reqwest")]
57pub fn reqwest_builder(
58    base_url: &str,
59    h_user_agent: &str,
60    h_accept: ::std::option::Option<&str>,
61) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
62    let default_url = concat!("https://api.github.com", "/feeds");
63    let reqwest_url = if base_url.is_empty() {
64        ::reqwest::Url::parse(default_url)?
65    } else {
66        let trimmed = base_url.trim_end_matches('/');
67        let mut url = String::with_capacity(trimmed.len() + 6);
68        url.push_str(trimmed);
69        url.push_str(&default_url[22..]);
70        ::reqwest::Url::parse(&url)?
71    };
72    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
73    let headers = request.headers_mut();
74    headers.append(
75        "User-Agent",
76        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
77    );
78    if let Some(value) = &h_accept {
79        headers.append(
80            "Accept",
81            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
82        );
83    }
84    Ok(request)
85}
86
87#[cfg(feature = "reqwest")]
88#[inline(always)]
89pub fn reqwest_request(
90    builder: ::reqwest::Request,
91) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
92{
93    Ok(builder)
94}
95
96#[cfg(feature = "reqwest-blocking")]
97pub fn reqwest_blocking_builder(
98    base_url: &str,
99    h_user_agent: &str,
100    h_accept: ::std::option::Option<&str>,
101) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
102    let default_url = concat!("https://api.github.com", "/feeds");
103    let reqwest_url = if base_url.is_empty() {
104        ::reqwest::Url::parse(default_url)?
105    } else {
106        let trimmed = base_url.trim_end_matches('/');
107        let mut url = String::with_capacity(trimmed.len() + 6);
108        url.push_str(trimmed);
109        url.push_str(&default_url[22..]);
110        ::reqwest::Url::parse(&url)?
111    };
112    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
113    let headers = request.headers_mut();
114    headers.append(
115        "User-Agent",
116        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
117    );
118    if let Some(value) = &h_accept {
119        headers.append(
120            "Accept",
121            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
122        );
123    }
124    Ok(request)
125}
126
127#[cfg(feature = "reqwest-blocking")]
128#[inline(always)]
129pub fn reqwest_blocking_request(
130    builder: ::reqwest::blocking::Request,
131) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
132{
133    Ok(builder)
134}