jinxapi_github/v1_1_4/request/
issues_unlock.rs

1//! Unlock an issue
2//! 
3//! Users with push access can unlock an issue's conversation.
4//! 
5//! [API method documentation](https://docs.github.com/rest/reference/issues#unlock-an-issue)
6
7
8fn url_string(
9    base_url: &str,
10    p_owner: &str,
11    p_repo: &str,
12    p_issue_number: 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() + 40);
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("/lock");
28    Ok(url)
29}
30
31#[cfg(feature = "hyper")]
32pub fn http_builder(
33    base_url: &str,
34    p_owner: &str,
35    p_repo: &str,
36    p_issue_number: i64,
37    h_user_agent: &str,
38    h_accept: ::std::option::Option<&str>,
39) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
40    let url = url_string(
41        base_url,
42        p_owner,
43        p_repo,
44        p_issue_number,
45    )?;
46    let mut builder = ::http::request::Request::delete(url);
47    builder = builder.header(
48        "User-Agent",
49        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
50    );
51    if let Some(value) = &h_accept {
52        builder = builder.header(
53            "Accept",
54            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
55        );
56    }
57    Ok(builder)
58}
59
60#[cfg(feature = "hyper")]
61#[inline]
62pub fn hyper_request(
63    builder: ::http::request::Builder,
64) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
65    Ok(builder.body(::hyper::Body::empty())?)
66}
67
68#[cfg(feature = "reqwest")]
69pub fn reqwest_builder(
70    base_url: &str,
71    p_owner: &str,
72    p_repo: &str,
73    p_issue_number: i64,
74    h_user_agent: &str,
75    h_accept: ::std::option::Option<&str>,
76) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
77    let url = url_string(
78        base_url,
79        p_owner,
80        p_repo,
81        p_issue_number,
82    )?;
83    let reqwest_url = ::reqwest::Url::parse(&url)?;
84    let mut request = ::reqwest::Request::new(::reqwest::Method::DELETE, reqwest_url);
85    let headers = request.headers_mut();
86    headers.append(
87        "User-Agent",
88        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
89    );
90    if let Some(value) = &h_accept {
91        headers.append(
92            "Accept",
93            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
94        );
95    }
96    Ok(request)
97}
98
99#[cfg(feature = "reqwest")]
100#[inline(always)]
101pub fn reqwest_request(
102    builder: ::reqwest::Request,
103) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
104{
105    Ok(builder)
106}
107
108#[cfg(feature = "reqwest-blocking")]
109pub fn reqwest_blocking_builder(
110    base_url: &str,
111    p_owner: &str,
112    p_repo: &str,
113    p_issue_number: i64,
114    h_user_agent: &str,
115    h_accept: ::std::option::Option<&str>,
116) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
117    let url = url_string(
118        base_url,
119        p_owner,
120        p_repo,
121        p_issue_number,
122    )?;
123    let reqwest_url = ::reqwest::Url::parse(&url)?;
124    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::DELETE, 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-blocking")]
140#[inline(always)]
141pub fn reqwest_blocking_request(
142    builder: ::reqwest::blocking::Request,
143) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
144{
145    Ok(builder)
146}