jinxapi_github/v1_1_4/request/
repos_list_invitations.rs

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