jinxapi_github/v1_1_4/request/
issues_list_milestones.rs

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