Skip to main content

jinxapi_github/v1_1_4/request/
issues_list_comments.rs

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