Add delete_role + test
This commit is contained in:
parent
c53ec53412
commit
aee50036a0
|
@ -160,4 +160,33 @@ impl types::RoleObject {
|
|||
.deserialize_response::<RoleObject>(user)
|
||||
.await
|
||||
}
|
||||
|
||||
/// Deletes a guild role. Requires the `MANAGE_ROLES` permission. Returns a 204 empty response on success.
|
||||
///
|
||||
/// # Reference:
|
||||
/// See <https://discord.com/developers/docs/resources/guild#delete-guild-role>
|
||||
pub async fn delete_role(
|
||||
user: &mut ChorusUser,
|
||||
guild_id: Snowflake,
|
||||
role_id: Snowflake,
|
||||
audit_log_reason: Option<String>,
|
||||
) -> ChorusResult<()> {
|
||||
let url = format!(
|
||||
"{}/guilds/{}/roles/{}",
|
||||
user.belongs_to.borrow_mut().urls.api,
|
||||
guild_id,
|
||||
role_id
|
||||
);
|
||||
|
||||
let request = ChorusRequest::new(
|
||||
http::Method::DELETE,
|
||||
&url,
|
||||
None,
|
||||
audit_log_reason.as_deref(),
|
||||
None,
|
||||
Some(user),
|
||||
LimitType::Guild(guild_id),
|
||||
);
|
||||
request.handle_request_as_result(user).await
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use chorus::types::{self, RoleCreateModifySchema};
|
||||
use chorus::types::{self, RoleCreateModifySchema, RoleObject};
|
||||
|
||||
mod common;
|
||||
|
||||
|
@ -32,7 +32,7 @@ async fn create_and_get_roles() {
|
|||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn get_singular_role() {
|
||||
async fn get_and_delete_role() {
|
||||
let mut bundle = common::setup().await;
|
||||
let guild_id = bundle.guild.read().unwrap().id;
|
||||
let role_id = bundle.role.read().unwrap().id;
|
||||
|
@ -41,5 +41,22 @@ async fn get_singular_role() {
|
|||
.await
|
||||
.unwrap();
|
||||
assert_eq!(role, same_role);
|
||||
assert_eq!(
|
||||
chorus::types::RoleObject::get_all(&mut bundle.user, guild_id)
|
||||
.await
|
||||
.unwrap()
|
||||
.len(),
|
||||
2
|
||||
);
|
||||
RoleObject::delete_role(&mut bundle.user, guild_id, role_id, None)
|
||||
.await
|
||||
.unwrap();
|
||||
assert_eq!(
|
||||
chorus::types::RoleObject::get_all(&mut bundle.user, guild_id)
|
||||
.await
|
||||
.unwrap()
|
||||
.len(),
|
||||
1
|
||||
);
|
||||
common::teardown(bundle).await
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue