jinxapi_github/v1_1_4/request/
activity_delete_thread_subscription.rs

1//! Delete a thread subscription
2//! 
3//! Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/reference/activity#set-a-thread-subscription) endpoint and set `ignore` to `true`.
4//! 
5//! [API method documentation](https://docs.github.com/rest/reference/activity#delete-a-thread-subscription)
6
7
8fn url_string(
9    base_url: &str,
10    p_thread_id: i64,
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() + 53);
18    url.push_str(trimmed);
19    url.push_str("/notifications/threads/");
20    ::querylizer::Simple::extend(&mut url, &p_thread_id, false, &::querylizer::encode_path)?;
21    url.push_str("/subscription");
22    Ok(url)
23}
24
25#[cfg(feature = "hyper")]
26pub fn http_builder(
27    base_url: &str,
28    p_thread_id: i64,
29    h_user_agent: &str,
30    h_accept: ::std::option::Option<&str>,
31) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
32    let url = url_string(
33        base_url,
34        p_thread_id,
35    )?;
36    let mut builder = ::http::request::Request::delete(url);
37    builder = builder.header(
38        "User-Agent",
39        &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
40    );
41    if let Some(value) = &h_accept {
42        builder = builder.header(
43            "Accept",
44            &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
45        );
46    }
47    Ok(builder)
48}
49
50#[cfg(feature = "hyper")]
51#[inline]
52pub fn hyper_request(
53    builder: ::http::request::Builder,
54) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
55    Ok(builder.body(::hyper::Body::empty())?)
56}
57
58#[cfg(feature = "reqwest")]
59pub fn reqwest_builder(
60    base_url: &str,
61    p_thread_id: i64,
62    h_user_agent: &str,
63    h_accept: ::std::option::Option<&str>,
64) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
65    let url = url_string(
66        base_url,
67        p_thread_id,
68    )?;
69    let reqwest_url = ::reqwest::Url::parse(&url)?;
70    let mut request = ::reqwest::Request::new(::reqwest::Method::DELETE, reqwest_url);
71    let headers = request.headers_mut();
72    headers.append(
73        "User-Agent",
74        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
75    );
76    if let Some(value) = &h_accept {
77        headers.append(
78            "Accept",
79            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
80        );
81    }
82    Ok(request)
83}
84
85#[cfg(feature = "reqwest")]
86#[inline(always)]
87pub fn reqwest_request(
88    builder: ::reqwest::Request,
89) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
90{
91    Ok(builder)
92}
93
94#[cfg(feature = "reqwest-blocking")]
95pub fn reqwest_blocking_builder(
96    base_url: &str,
97    p_thread_id: i64,
98    h_user_agent: &str,
99    h_accept: ::std::option::Option<&str>,
100) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
101    let url = url_string(
102        base_url,
103        p_thread_id,
104    )?;
105    let reqwest_url = ::reqwest::Url::parse(&url)?;
106    let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::DELETE, reqwest_url);
107    let headers = request.headers_mut();
108    headers.append(
109        "User-Agent",
110        ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
111    );
112    if let Some(value) = &h_accept {
113        headers.append(
114            "Accept",
115            ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
116        );
117    }
118    Ok(request)
119}
120
121#[cfg(feature = "reqwest-blocking")]
122#[inline(always)]
123pub fn reqwest_blocking_request(
124    builder: ::reqwest::blocking::Request,
125) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
126{
127    Ok(builder)
128}