start adding auditlogreason to routes that take it

This commit is contained in:
bitfl0wer 2023-08-24 22:30:13 +02:00
parent 0cb2bb6883
commit dd20cb6d9b
No known key found for this signature in database
GPG Key ID: 0ACD574FCF5226CF
4 changed files with 111 additions and 68 deletions

View File

@ -33,15 +33,23 @@ impl Channel {
///
/// # Reference
/// See <https://discord-userdoccers.vercel.app/resources/channel#delete-channel>
pub async fn delete(self, user: &mut ChorusUser) -> ChorusResult<()> {
let chorus_request = ChorusRequest {
request: Client::new()
pub async fn delete(
self,
audit_log_reason: Option<String>,
user: &mut ChorusUser,
) -> ChorusResult<()> {
let mut request = Client::new()
.delete(format!(
"{}/channels/{}",
user.belongs_to.borrow().urls.api,
self.id
))
.header("Authorization", user.token()),
.header("Authorization", user.token());
if let Some(reason) = audit_log_reason {
request = request.header("X-Audit-Log-Reason", reason);
}
let chorus_request = ChorusRequest {
request,
limit_type: LimitType::Channel(self.id),
};
chorus_request.handle_request_as_result(user).await
@ -64,11 +72,11 @@ impl Channel {
pub async fn modify(
&self,
modify_data: ChannelModifySchema,
audit_log_reason: Option<String>,
user: &mut ChorusUser,
) -> ChorusResult<Channel> {
let channel_id = self.id;
let chorus_request = ChorusRequest {
request: Client::new()
let mut request = Client::new()
.patch(format!(
"{}/channels/{}",
user.belongs_to.borrow().urls.api,
@ -76,7 +84,12 @@ impl Channel {
))
.header("Authorization", user.token())
.header("Content-Type", "application/json")
.body(to_string(&modify_data).unwrap()),
.body(to_string(&modify_data).unwrap());
if let Some(reason) = audit_log_reason {
request = request.header("X-Audit-Log-Reason", reason);
}
let chorus_request = ChorusRequest {
request,
limit_type: LimitType::Channel(channel_id),
};
chorus_request.deserialize_response::<Channel>(user).await

View File

@ -162,10 +162,10 @@ impl Message {
pub async fn sticky(
channel_id: Snowflake,
message_id: Snowflake,
audit_log_reason: Option<String>,
user: &mut ChorusUser,
) -> ChorusResult<()> {
let chorus_request = ChorusRequest {
request: Client::new()
let mut request = Client::new()
.put(format!(
"{}/channels/{}/pins/{}",
user.belongs_to.borrow().urls.api,
@ -173,7 +173,12 @@ impl Message {
message_id
))
.header("Authorization", user.token())
.header("Content-Type", "application/json"),
.header("Content-Type", "application/json");
if let Some(reason) = audit_log_reason {
request = request.header("X-Audit-Log-Reason", reason);
}
let chorus_request = ChorusRequest {
request,
limit_type: LimitType::Channel(channel_id),
};
chorus_request.handle_request_as_result(user).await
@ -185,10 +190,10 @@ impl Message {
pub async fn unsticky(
channel_id: Snowflake,
message_id: Snowflake,
audit_log_reason: Option<String>,
user: &mut ChorusUser,
) -> ChorusResult<()> {
let chorus_request = ChorusRequest {
request: Client::new()
let mut request = Client::new()
.delete(format!(
"{}/channels/{}/pins/{}",
user.belongs_to.borrow().urls.api,
@ -196,7 +201,12 @@ impl Message {
message_id
))
.header("Authorization", user.token())
.header("Content-Type", "application/json"),
.header("Content-Type", "application/json");
if let Some(reason) = audit_log_reason {
request = request.header("X-Audit-Log-Reason", reason);
}
let chorus_request = ChorusRequest {
request,
limit_type: LimitType::Channel(channel_id),
};
chorus_request.handle_request_as_result(user).await
@ -370,10 +380,10 @@ impl Message {
pub async fn delete(
channel_id: Snowflake,
message_id: Snowflake,
audit_log_reason: Option<String>,
user: &mut ChorusUser,
) -> ChorusResult<()> {
let chorus_request = ChorusRequest {
request: Client::new()
let mut request = Client::new()
.delete(format!(
"{}/channels/{}/messages/{}",
user.belongs_to.borrow().urls.api,
@ -381,7 +391,12 @@ impl Message {
message_id
))
.header("Authorization", user.token())
.header("Content-Type", "application/json"),
.header("Content-Type", "application/json");
if let Some(reason) = audit_log_reason {
request = request.header("X-Audit-Log-Reason", reason);
}
let chorus_request = ChorusRequest {
request,
limit_type: LimitType::Channel(channel_id),
};
chorus_request.handle_request_as_result(user).await
@ -399,6 +414,7 @@ impl Message {
pub async fn bulk_delete(
channel_id: Snowflake,
messages: Vec<Snowflake>,
audit_log_reason: Option<String>,
user: &mut ChorusUser,
) -> ChorusResult<()> {
if messages.len() < 2 {
@ -406,8 +422,7 @@ impl Message {
error: "`messages` must contain at least 2 entries.".to_string(),
});
}
let chorus_request = ChorusRequest {
request: Client::new()
let mut request = Client::new()
.post(format!(
"{}/channels/{}/messages/bulk-delete",
user.belongs_to.borrow().urls.api,
@ -415,7 +430,12 @@ impl Message {
))
.header("Authorization", user.token())
.header("Content-Type", "application/json")
.body(to_string(&messages).unwrap()),
.body(to_string(&messages).unwrap());
if let Some(reason) = audit_log_reason {
request = request.header("X-Audit-Log-Reason", reason);
}
let chorus_request = ChorusRequest {
request,
limit_type: LimitType::Channel(channel_id),
};
chorus_request.handle_request_as_result(user).await

View File

@ -20,9 +20,10 @@ impl types::Channel {
///
/// # Reference
/// See <https://discord-userdoccers.vercel.app/resources/channel#modify-channel-permissions>
pub async fn edit_permissions(
pub async fn modify_permissions(
user: &mut ChorusUser,
channel_id: Snowflake,
audit_log_reason: Option<String>,
overwrite: PermissionOverwrite,
) -> ChorusResult<()> {
let url = format!(
@ -39,12 +40,16 @@ impl types::Channel {
});
}
};
let chorus_request = ChorusRequest {
request: Client::new()
let mut request = Client::new()
.put(url)
.header("Authorization", user.token())
.header("Content-Type", "application/json")
.body(body),
.body(body);
if let Some(reason) = audit_log_reason {
request = request.header("X-Audit-Log-Reason", reason);
}
let chorus_request = ChorusRequest {
request,
limit_type: LimitType::Channel(channel_id),
};
chorus_request.handle_request_as_result(user).await

View File

@ -198,9 +198,9 @@ impl Channel {
user: &mut ChorusUser,
guild_id: Snowflake,
schema: ChannelCreateSchema,
audit_log_reason: Option<String>,
) -> ChorusResult<Channel> {
let chorus_request = ChorusRequest {
request: Client::new()
let mut request = Client::new()
.post(format!(
"{}/guilds/{}/channels",
user.belongs_to.borrow().urls.api,
@ -208,7 +208,12 @@ impl Channel {
))
.header("Authorization", user.token())
.header("Content-Type", "application/json")
.body(to_string(&schema).unwrap()),
.body(to_string(&schema).unwrap());
if let Some(reason) = audit_log_reason {
request = request.header("X-Audit-Log-Reason", reason);
}
let chorus_request = ChorusRequest {
request,
limit_type: LimitType::Guild(guild_id),
};
chorus_request.deserialize_response::<Channel>(user).await