jinxapi_github/v1_1_4/request/
issues_list.rs

1//! List issues assigned to the authenticated user
2//! 
3//! List issues assigned to the authenticated user across all visible repositories including owned repositories, member
4//! repositories, and organization repositories. You can use the `filter` query parameter to fetch issues that are not
5//! necessarily assigned to you.
6//! 
7//! 
8//! **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this
9//! reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by
10//! the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull
11//! request id, use the "[List pull requests](https://docs.github.com/rest/reference/pulls#list-pull-requests)" endpoint.
12//! 
13//! [API method documentation](https://docs.github.com/rest/reference/issues#list-issues-assigned-to-the-authenticated-user)
14
15
16#[allow(clippy::too_many_arguments)]
17fn url_string(
18    base_url: &str,
19    q_filter: ::std::option::Option<&str>,
20    q_state: ::std::option::Option<&str>,
21    q_labels: ::std::option::Option<&str>,
22    q_sort: ::std::option::Option<&str>,
23    q_direction: ::std::option::Option<&str>,
24    q_since: ::std::option::Option<&str>,
25    q_collab: ::std::option::Option<bool>,
26    q_orgs: ::std::option::Option<bool>,
27    q_owned: ::std::option::Option<bool>,
28    q_pulls: ::std::option::Option<bool>,
29    q_per_page: ::std::option::Option<i64>,
30    q_page: ::std::option::Option<i64>,
31) -> Result<String, crate::v1_1_4::ApiError> {
32    let trimmed = if base_url.is_empty() {
33        "https://api.github.com"
34    } else {
35        base_url.trim_end_matches('/')
36    };
37    let mut url = String::with_capacity(trimmed.len() + 23);
38    url.push_str(trimmed);
39    url.push_str("/issues");
40    let mut prefix = '?';
41    if let Some(value) = &q_filter {
42        url.push(::std::mem::replace(&mut prefix, '&'));
43        ::querylizer::Form::extend(&mut url, "filter", value, false, &::querylizer::encode_query)?;
44    }
45    if let Some(value) = &q_state {
46        url.push(::std::mem::replace(&mut prefix, '&'));
47        ::querylizer::Form::extend(&mut url, "state", value, false, &::querylizer::encode_query)?;
48    }
49    if let Some(value) = &q_labels {
50        url.push(::std::mem::replace(&mut prefix, '&'));
51        ::querylizer::Form::extend(&mut url, "labels", value, false, &::querylizer::encode_query)?;
52    }
53    if let Some(value) = &q_sort {
54        url.push(::std::mem::replace(&mut prefix, '&'));
55        ::querylizer::Form::extend(&mut url, "sort", value, false, &::querylizer::encode_query)?;
56    }
57    if let Some(value) = &q_direction {
58        url.push(::std::mem::replace(&mut prefix, '&'));
59        ::querylizer::Form::extend(&mut url, "direction", value, false, &::querylizer::encode_query)?;
60    }
61    if let Some(value) = &q_since {
62        url.push(::std::mem::replace(&mut prefix, '&'));
63        ::querylizer::Form::extend(&mut url, "since", value, false, &::querylizer::encode_query)?;
64    }
65    if let Some(value) = &q_collab {
66        url.push(::std::mem::replace(&mut prefix, '&'));
67        ::querylizer::Form::extend(&mut url, "collab", value, false, &::querylizer::encode_query)?;
68    }
69    if let Some(value) = &q_orgs {
70        url.push(::std::mem::replace(&mut prefix, '&'));
71        ::querylizer::Form::extend(&mut url, "orgs", value, false, &::querylizer::encode_query)?;
72    }
73    if let Some(value) = &q_owned {
74        url.push(::std::mem::replace(&mut prefix, '&'));
75        ::querylizer::Form::extend(&mut url, "owned", value, false, &::querylizer::encode_query)?;
76    }
77    if let Some(value) = &q_pulls {
78        url.push(::std::mem::replace(&mut prefix, '&'));
79        ::querylizer::Form::extend(&mut url, "pulls", value, false, &::querylizer::encode_query)?;
80    }
81    if let Some(value) = &q_per_page {
82        url.push(::std::mem::replace(&mut prefix, '&'));
83        ::querylizer::Form::extend(&mut url, "per_page", value, false, &::querylizer::encode_query)?;
84    }
85    if let Some(value) = &q_page {
86        url.push(::std::mem::replace(&mut prefix, '&'));
87        ::querylizer::Form::extend(&mut url, "page", value, false, &::querylizer::encode_query)?;
88    }
89    Ok(url)
90}
91
92#[cfg(feature = "hyper")]
93#[allow(clippy::too_many_arguments)]
94pub fn http_builder(
95    base_url: &str,
96    q_filter: ::std::option::Option<&str>,
97    q_state: ::std::option::Option<&str>,
98    q_labels: ::std::option::Option<&str>,
99    q_sort: ::std::option::Option<&str>,
100    q_direction: ::std::option::Option<&str>,
101    q_since: ::std::option::Option<&str>,
102    q_collab: ::std::option::Option<bool>,
103    q_orgs: ::std::option::Option<bool>,
104    q_owned: ::std::option::Option<bool>,
105    q_pulls: ::std::option::Option<bool>,
106    q_per_page: ::std::option::Option<i64>,
107    q_page: ::std::option::Option<i64>,
108    h_user_agent: &str,
109    h_accept: ::std::option::Option<&str>,
110) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
111    let url = url_string(
112        base_url,
113        q_filter,
114        q_state,
115        q_labels,
116        q_sort,
117        q_direction,
118        q_since,
119        q_collab,
120        q_orgs,
121        q_owned,
122        q_pulls,
123        q_per_page,
124        q_page,
125    )?;
126    let mut builder = ::http::request::Request::get(url);
127    builder = builder.header(
128        "User-Agent",
129        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
130    );
131    if let Some(value) = &h_accept {
132        builder = builder.header(
133            "Accept",
134            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
135        );
136    }
137    Ok(builder)
138}
139
140#[cfg(feature = "hyper")]
141#[inline]
142pub fn hyper_request(
143    builder: ::http::request::Builder,
144) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
145    Ok(builder.body(::hyper::Body::empty())?)
146}
147
148#[cfg(feature = "reqwest")]
149#[allow(clippy::too_many_arguments)]
150pub fn reqwest_builder(
151    base_url: &str,
152    q_filter: ::std::option::Option<&str>,
153    q_state: ::std::option::Option<&str>,
154    q_labels: ::std::option::Option<&str>,
155    q_sort: ::std::option::Option<&str>,
156    q_direction: ::std::option::Option<&str>,
157    q_since: ::std::option::Option<&str>,
158    q_collab: ::std::option::Option<bool>,
159    q_orgs: ::std::option::Option<bool>,
160    q_owned: ::std::option::Option<bool>,
161    q_pulls: ::std::option::Option<bool>,
162    q_per_page: ::std::option::Option<i64>,
163    q_page: ::std::option::Option<i64>,
164    h_user_agent: &str,
165    h_accept: ::std::option::Option<&str>,
166) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
167    let url = url_string(
168        base_url,
169        q_filter,
170        q_state,
171        q_labels,
172        q_sort,
173        q_direction,
174        q_since,
175        q_collab,
176        q_orgs,
177        q_owned,
178        q_pulls,
179        q_per_page,
180        q_page,
181    )?;
182    let reqwest_url = ::reqwest::Url::parse(&url)?;
183    let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
184    let headers = request.headers_mut();
185    headers.append(
186        "User-Agent",
187        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
188    );
189    if let Some(value) = &h_accept {
190        headers.append(
191            "Accept",
192            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
193        );
194    }
195    Ok(request)
196}
197
198#[cfg(feature = "reqwest")]
199#[inline(always)]
200pub fn reqwest_request(
201    builder: ::reqwest::Request,
202) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
203{
204    Ok(builder)
205}
206
207#[cfg(feature = "reqwest-blocking")]
208#[allow(clippy::too_many_arguments)]
209pub fn reqwest_blocking_builder(
210    base_url: &str,
211    q_filter: ::std::option::Option<&str>,
212    q_state: ::std::option::Option<&str>,
213    q_labels: ::std::option::Option<&str>,
214    q_sort: ::std::option::Option<&str>,
215    q_direction: ::std::option::Option<&str>,
216    q_since: ::std::option::Option<&str>,
217    q_collab: ::std::option::Option<bool>,
218    q_orgs: ::std::option::Option<bool>,
219    q_owned: ::std::option::Option<bool>,
220    q_pulls: ::std::option::Option<bool>,
221    q_per_page: ::std::option::Option<i64>,
222    q_page: ::std::option::Option<i64>,
223    h_user_agent: &str,
224    h_accept: ::std::option::Option<&str>,
225) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
226    let url = url_string(
227        base_url,
228        q_filter,
229        q_state,
230        q_labels,
231        q_sort,
232        q_direction,
233        q_since,
234        q_collab,
235        q_orgs,
236        q_owned,
237        q_pulls,
238        q_per_page,
239        q_page,
240    )?;
241    let reqwest_url = ::reqwest::Url::parse(&url)?;
242    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
243    let headers = request.headers_mut();
244    headers.append(
245        "User-Agent",
246        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
247    );
248    if let Some(value) = &h_accept {
249        headers.append(
250            "Accept",
251            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
252        );
253    }
254    Ok(request)
255}
256
257#[cfg(feature = "reqwest-blocking")]
258#[inline(always)]
259pub fn reqwest_blocking_request(
260    builder: ::reqwest::blocking::Request,
261) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
262{
263    Ok(builder)
264}