jinxapi_github/v1_1_4/request/
issues_list_events.rs

1//! List issue events
2//! 
3//! [API method documentation](https://docs.github.com/rest/reference/issues#list-issue-events)
4
5
6fn url_string(
7    base_url: &str,
8    p_owner: &str,
9    p_repo: &str,
10    p_issue_number: i64,
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() + 42);
20    url.push_str(trimmed);
21    url.push_str("/repos/");
22    ::querylizer::Simple::extend(&mut url, &p_owner, false, &::querylizer::encode_path)?;
23    url.push('/');
24    ::querylizer::Simple::extend(&mut url, &p_repo, false, &::querylizer::encode_path)?;
25    url.push_str("/issues/");
26    ::querylizer::Simple::extend(&mut url, &p_issue_number, false, &::querylizer::encode_path)?;
27    url.push_str("/events");
28    let mut prefix = '?';
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")]
41#[allow(clippy::too_many_arguments)]
42pub fn http_builder(
43    base_url: &str,
44    p_owner: &str,
45    p_repo: &str,
46    p_issue_number: i64,
47    q_per_page: ::std::option::Option<i64>,
48    q_page: ::std::option::Option<i64>,
49    h_user_agent: &str,
50    h_accept: ::std::option::Option<&str>,
51) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
52    let url = url_string(
53        base_url,
54        p_owner,
55        p_repo,
56        p_issue_number,
57        q_per_page,
58        q_page,
59    )?;
60    let mut builder = ::http::request::Request::get(url);
61    builder = builder.header(
62        "User-Agent",
63        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
64    );
65    if let Some(value) = &h_accept {
66        builder = builder.header(
67            "Accept",
68            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
69        );
70    }
71    Ok(builder)
72}
73
74#[cfg(feature = "hyper")]
75#[inline]
76pub fn hyper_request(
77    builder: ::http::request::Builder,
78) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
79    Ok(builder.body(::hyper::Body::empty())?)
80}
81
82#[cfg(feature = "reqwest")]
83#[allow(clippy::too_many_arguments)]
84pub fn reqwest_builder(
85    base_url: &str,
86    p_owner: &str,
87    p_repo: &str,
88    p_issue_number: i64,
89    q_per_page: ::std::option::Option<i64>,
90    q_page: ::std::option::Option<i64>,
91    h_user_agent: &str,
92    h_accept: ::std::option::Option<&str>,
93) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
94    let url = url_string(
95        base_url,
96        p_owner,
97        p_repo,
98        p_issue_number,
99        q_per_page,
100        q_page,
101    )?;
102    let reqwest_url = ::reqwest::Url::parse(&url)?;
103    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
104    let headers = request.headers_mut();
105    headers.append(
106        "User-Agent",
107        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
108    );
109    if let Some(value) = &h_accept {
110        headers.append(
111            "Accept",
112            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
113        );
114    }
115    Ok(request)
116}
117
118#[cfg(feature = "reqwest")]
119#[inline(always)]
120pub fn reqwest_request(
121    builder: ::reqwest::Request,
122) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
123{
124    Ok(builder)
125}
126
127#[cfg(feature = "reqwest-blocking")]
128#[allow(clippy::too_many_arguments)]
129pub fn reqwest_blocking_builder(
130    base_url: &str,
131    p_owner: &str,
132    p_repo: &str,
133    p_issue_number: i64,
134    q_per_page: ::std::option::Option<i64>,
135    q_page: ::std::option::Option<i64>,
136    h_user_agent: &str,
137    h_accept: ::std::option::Option<&str>,
138) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
139    let url = url_string(
140        base_url,
141        p_owner,
142        p_repo,
143        p_issue_number,
144        q_per_page,
145        q_page,
146    )?;
147    let reqwest_url = ::reqwest::Url::parse(&url)?;
148    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
149    let headers = request.headers_mut();
150    headers.append(
151        "User-Agent",
152        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
153    );
154    if let Some(value) = &h_accept {
155        headers.append(
156            "Accept",
157            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
158        );
159    }
160    Ok(request)
161}
162
163#[cfg(feature = "reqwest-blocking")]
164#[inline(always)]
165pub fn reqwest_blocking_request(
166    builder: ::reqwest::blocking::Request,
167) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
168{
169    Ok(builder)
170}