From cb216c462df7a61d6b8a1c4e4f646bf32ebf333a Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Sun, 20 Aug 2023 18:49:10 +0200 Subject: [PATCH] Add create_ban Closes "Create Guild Ban #299" --- src/api/guilds/guilds.rs | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/api/guilds/guilds.rs b/src/api/guilds/guilds.rs index 9c67831..d26c069 100644 --- a/src/api/guilds/guilds.rs +++ b/src/api/guilds/guilds.rs @@ -7,8 +7,8 @@ use crate::errors::ChorusError; use crate::errors::ChorusResult; use crate::instance::UserMeta; use crate::ratelimiter::ChorusRequest; -use crate::types::Snowflake; -use crate::types::{Channel, ChannelCreateSchema, Guild, GuildCreateSchema}; +use crate::types::{Channel, ChannelCreateSchema, Guild, GuildBanCreateSchema, GuildCreateSchema}; +use crate::types::{GuildBan, Snowflake}; impl Guild { /// Creates a new guild. @@ -137,6 +137,30 @@ impl Guild { let response = chorus_request.deserialize_response::(user).await?; Ok(response) } + + pub async fn create_ban( + guild_id: Snowflake, + user_id: Snowflake, + schema: GuildBanCreateSchema, + user: &mut UserMeta, + ) -> ChorusResult { + let chorus_request = ChorusRequest { + request: Client::new() + .put(format!( + "{}/guilds/{}/bans/{}", + user.belongs_to.borrow().urls.api, + guild_id, + user_id + )) + .header("Authorization", user.token()) + .body(to_string(&schema).unwrap()), + limit_type: LimitType::Guild(guild_id), + }; + let response = chorus_request + .deserialize_response::(user) + .await?; + Ok(response) + } } impl Channel {