jinxapi_github/v1_1_4/request/
apps_suspend_installation.rs

1//! Suspend an app installation
2//! 
3//! Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account's resources. When a GitHub App is suspended, the app's access to the GitHub API or webhook events is blocked for that account.
4//! 
5//! You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.
6//! 
7//! [API method documentation](https://docs.github.com/rest/reference/apps#suspend-an-app-installation)
8
9
10fn url_string(
11    base_url: &str,
12    p_installation_id: 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() + 46);
20    url.push_str(trimmed);
21    url.push_str("/app/installations/");
22    ::querylizer::Simple::extend(&mut url, &p_installation_id, false, &::querylizer::encode_path)?;
23    url.push_str("/suspended");
24    Ok(url)
25}
26
27#[cfg(feature = "hyper")]
28pub fn http_builder(
29    base_url: &str,
30    p_installation_id: i64,
31    h_user_agent: &str,
32    h_accept: ::std::option::Option<&str>,
33) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
34    let url = url_string(
35        base_url,
36        p_installation_id,
37    )?;
38    let mut builder = ::http::request::Request::put(url);
39    builder = builder.header(
40        "User-Agent",
41        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
42    );
43    if let Some(value) = &h_accept {
44        builder = builder.header(
45            "Accept",
46            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
47        );
48    }
49    Ok(builder)
50}
51
52#[cfg(feature = "hyper")]
53#[inline]
54pub fn hyper_request(
55    builder: ::http::request::Builder,
56) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
57    Ok(builder.body(::hyper::Body::empty())?)
58}
59
60#[cfg(feature = "reqwest")]
61pub fn reqwest_builder(
62    base_url: &str,
63    p_installation_id: i64,
64    h_user_agent: &str,
65    h_accept: ::std::option::Option<&str>,
66) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
67    let url = url_string(
68        base_url,
69        p_installation_id,
70    )?;
71    let reqwest_url = ::reqwest::Url::parse(&url)?;
72    let mut request = ::reqwest::Request::new(::reqwest::Method::PUT, reqwest_url);
73    let headers = request.headers_mut();
74    headers.append(
75        "User-Agent",
76        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
77    );
78    if let Some(value) = &h_accept {
79        headers.append(
80            "Accept",
81            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
82        );
83    }
84    Ok(request)
85}
86
87#[cfg(feature = "reqwest")]
88#[inline(always)]
89pub fn reqwest_request(
90    builder: ::reqwest::Request,
91) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
92{
93    Ok(builder)
94}
95
96#[cfg(feature = "reqwest-blocking")]
97pub fn reqwest_blocking_builder(
98    base_url: &str,
99    p_installation_id: i64,
100    h_user_agent: &str,
101    h_accept: ::std::option::Option<&str>,
102) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
103    let url = url_string(
104        base_url,
105        p_installation_id,
106    )?;
107    let reqwest_url = ::reqwest::Url::parse(&url)?;
108    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::PUT, reqwest_url);
109    let headers = request.headers_mut();
110    headers.append(
111        "User-Agent",
112        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
113    );
114    if let Some(value) = &h_accept {
115        headers.append(
116            "Accept",
117            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
118        );
119    }
120    Ok(request)
121}
122
123#[cfg(feature = "reqwest-blocking")]
124#[inline(always)]
125pub fn reqwest_blocking_request(
126    builder: ::reqwest::blocking::Request,
127) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
128{
129    Ok(builder)
130}