jinxapi_github/v1_1_4/request/
users_unfollow.rs

1//! Unfollow a user
2//! 
3//! Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope.
4//! 
5//! [API method documentation](https://docs.github.com/rest/reference/users#unfollow-a-user)
6
7
8fn url_string(
9    base_url: &str,
10    p_username: &str,
11) -> Result<String, crate::v1_1_4::ApiError> {
12    let trimmed = if base_url.is_empty() {
13        "https://api.github.com"
14    } else {
15        base_url.trim_end_matches('/')
16    };
17    let mut url = String::with_capacity(trimmed.len() + 33);
18    url.push_str(trimmed);
19    url.push_str("/user/following/");
20    ::querylizer::Simple::extend(&mut url, &p_username, false, &::querylizer::encode_path)?;
21    Ok(url)
22}
23
24#[cfg(feature = "hyper")]
25pub fn http_builder(
26    base_url: &str,
27    p_username: &str,
28    h_user_agent: &str,
29    h_accept: ::std::option::Option<&str>,
30) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
31    let url = url_string(
32        base_url,
33        p_username,
34    )?;
35    let mut builder = ::http::request::Request::delete(url);
36    builder = builder.header(
37        "User-Agent",
38        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
39    );
40    if let Some(value) = &h_accept {
41        builder = builder.header(
42            "Accept",
43            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
44        );
45    }
46    Ok(builder)
47}
48
49#[cfg(feature = "hyper")]
50#[inline]
51pub fn hyper_request(
52    builder: ::http::request::Builder,
53) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
54    Ok(builder.body(::hyper::Body::empty())?)
55}
56
57#[cfg(feature = "reqwest")]
58pub fn reqwest_builder(
59    base_url: &str,
60    p_username: &str,
61    h_user_agent: &str,
62    h_accept: ::std::option::Option<&str>,
63) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
64    let url = url_string(
65        base_url,
66        p_username,
67    )?;
68    let reqwest_url = ::reqwest::Url::parse(&url)?;
69    let mut request = ::reqwest::Request::new(::reqwest::Method::DELETE, reqwest_url);
70    let headers = request.headers_mut();
71    headers.append(
72        "User-Agent",
73        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
74    );
75    if let Some(value) = &h_accept {
76        headers.append(
77            "Accept",
78            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
79        );
80    }
81    Ok(request)
82}
83
84#[cfg(feature = "reqwest")]
85#[inline(always)]
86pub fn reqwest_request(
87    builder: ::reqwest::Request,
88) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
89{
90    Ok(builder)
91}
92
93#[cfg(feature = "reqwest-blocking")]
94pub fn reqwest_blocking_builder(
95    base_url: &str,
96    p_username: &str,
97    h_user_agent: &str,
98    h_accept: ::std::option::Option<&str>,
99) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
100    let url = url_string(
101        base_url,
102        p_username,
103    )?;
104    let reqwest_url = ::reqwest::Url::parse(&url)?;
105    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::DELETE, reqwest_url);
106    let headers = request.headers_mut();
107    headers.append(
108        "User-Agent",
109        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
110    );
111    if let Some(value) = &h_accept {
112        headers.append(
113            "Accept",
114            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
115        );
116    }
117    Ok(request)
118}
119
120#[cfg(feature = "reqwest-blocking")]
121#[inline(always)]
122pub fn reqwest_blocking_request(
123    builder: ::reqwest::blocking::Request,
124) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
125{
126    Ok(builder)
127}