Skip to main content

neptunium_http/endpoints/guild/
toggle_detached_banner.rs

1use bon::Builder;
2use neptunium_model::{
3    guild::Guild,
4    id::{Id, marker::GuildMarker},
5};
6use reqwest::Method;
7use serde_json::json;
8
9use crate::{endpoints::Endpoint, request::Request};
10
11#[derive(Builder, Copy, Clone, Debug)]
12pub struct ToggleDetachedBanner {
13    pub guild_id: Id<GuildMarker>,
14    pub enabled: bool,
15}
16
17impl Endpoint for ToggleDetachedBanner {
18    type Response = Guild;
19
20    fn into_request(self) -> crate::request::Request {
21        let body = json!({
22            "enabled": self.enabled,
23        })
24        .to_string();
25
26        Request::builder()
27            .method(Method::PATCH)
28            .body(body)
29            .path(format!("/guilds/{}/detached-banner", self.guild_id))
30            .build()
31    }
32}