diff --git a/src/api/guilds/guilds.rs b/src/api/guilds/guilds.rs index d26c069..85a18b7 100644 --- a/src/api/guilds/guilds.rs +++ b/src/api/guilds/guilds.rs @@ -7,7 +7,9 @@ use crate::errors::ChorusError; use crate::errors::ChorusResult; use crate::instance::UserMeta; use crate::ratelimiter::ChorusRequest; -use crate::types::{Channel, ChannelCreateSchema, Guild, GuildBanCreateSchema, GuildCreateSchema}; +use crate::types::{ + Channel, ChannelCreateSchema, Guild, GuildBanCreateSchema, GuildCreateSchema, GuildModifySchema, +}; use crate::types::{GuildBan, Snowflake}; impl Guild { @@ -161,6 +163,28 @@ impl Guild { .await?; Ok(response) } + + /// # Reference + /// + pub async fn modify( + guild_id: Snowflake, + schema: GuildModifySchema, + user: &mut UserMeta, + ) -> ChorusResult { + let chorus_request = ChorusRequest { + request: Client::new() + .patch(format!( + "{}/guilds/{}", + user.belongs_to.borrow().urls.api, + guild_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 {