mirror of
https://github.com/discordeno/discordeno.git
synced 2026-05-30 23:40:07 +00:00
140 lines
4.9 KiB
TypeScript
140 lines
4.9 KiB
TypeScript
import { Bot } from "../../bot.ts";
|
|
import { DiscordAuditLogEntry } from "../../types/discord.ts";
|
|
import { AuditLogEntry } from "../auditLogEntry.ts";
|
|
|
|
export function transformAuditLogEntryToDiscordAuditLogEntry(bot: Bot, payload: AuditLogEntry): DiscordAuditLogEntry {
|
|
return {
|
|
id: bot.transformers.reverse.snowflake(payload.id),
|
|
// @ts-expect-error: ts can't identify return type of switch case
|
|
changes: payload.changes?.map((change) => {
|
|
switch (change.key) {
|
|
case "$add":
|
|
case "$remove":
|
|
return {
|
|
key: change.key,
|
|
new_value: (change.new as {
|
|
id: bigint | undefined;
|
|
name: string | undefined;
|
|
}[])?.map((val) => ({
|
|
id: val.id ? bot.transformers.reverse.snowflake(val.id) : undefined,
|
|
name: val.name,
|
|
})),
|
|
old_value: (change.old as {
|
|
id: bigint | undefined;
|
|
name: string | undefined;
|
|
}[] | undefined)?.map((val) => ({
|
|
id: val?.id ? bot.transformers.reverse.snowflake(val.id) : undefined,
|
|
name: val?.name,
|
|
})),
|
|
};
|
|
case "discovery_splash_hash":
|
|
case "banner_hash":
|
|
case "rules_channel_id":
|
|
case "public_updates_channel_id":
|
|
case "icon_hash":
|
|
case "image_hash":
|
|
case "splash_hash":
|
|
case "owner_id":
|
|
case "widget_channel_id":
|
|
case "system_channel_id":
|
|
case "application_id":
|
|
case "permissions":
|
|
case "allow":
|
|
case "deny":
|
|
case "channel_id":
|
|
case "inviter_id":
|
|
case "avatar_hash":
|
|
case "id":
|
|
return {
|
|
key: change.key,
|
|
old_value: change.old ? bot.transformers.reverse.snowflake(change.old as bigint) : "",
|
|
new_value: change.new ? bot.transformers.reverse.snowflake(change.new as bigint) : "",
|
|
};
|
|
case "name":
|
|
case "description":
|
|
case "preferred_locale":
|
|
case "region":
|
|
case "afk_channel_id":
|
|
case "vanity_url_code":
|
|
case "topic":
|
|
case "code":
|
|
case "nick":
|
|
case "location":
|
|
return {
|
|
key: change.key,
|
|
old_value: change.old,
|
|
new_value: change.new,
|
|
};
|
|
case "afk_timeout":
|
|
case "mfa_level":
|
|
case "verification_level":
|
|
case "explicit_content_filter":
|
|
case "default_message_notifications":
|
|
case "prune_delete_days":
|
|
case "position":
|
|
case "bitrate":
|
|
case "rate_limit_per_user":
|
|
case "color":
|
|
case "max_uses":
|
|
case "uses":
|
|
case "max_age":
|
|
case "expire_behavior":
|
|
case "expire_grace_period":
|
|
case "user_limit":
|
|
case "privacy_level":
|
|
case "entity_type":
|
|
case "status":
|
|
return {
|
|
key: change.key,
|
|
old_value: change.old ? Number(change.old) : "",
|
|
new_value: change.new ? Number(change.new) : "",
|
|
};
|
|
case "widget_enabled":
|
|
case "nsfw":
|
|
case "hoist":
|
|
case "mentionable":
|
|
case "temporary":
|
|
case "deaf":
|
|
case "mute":
|
|
case "enable_emoticons":
|
|
return {
|
|
key: change.key,
|
|
old_value: change.old,
|
|
new_value: change.new,
|
|
};
|
|
case "permission_overwrites":
|
|
return {
|
|
key: change.key,
|
|
old_value: change.old,
|
|
new_value: change.new,
|
|
};
|
|
default:
|
|
return {
|
|
key: change.key,
|
|
old_value: change.old,
|
|
new_value: change.new,
|
|
};
|
|
}
|
|
}),
|
|
user_id: payload.userId ? bot.transformers.reverse.snowflake(payload.userId) : null,
|
|
target_id: payload.targetId ? bot.transformers.reverse.snowflake(payload.targetId) : null,
|
|
action_type: payload.actionType,
|
|
options: payload.options
|
|
? {
|
|
// respect transformer as reference than type
|
|
delete_member_days: payload.options.deleteMemberDays === 0 ? payload.options.deleteMemberDays.toString() : "",
|
|
members_removed: payload.options.membersRemoved === 0 ? payload.options.membersRemoved.toString() : "",
|
|
channel_id: payload.options.channelId ? bot.transformers.reverse.snowflake(payload.options.channelId) : "",
|
|
message_id: payload.options.messageId ? bot.transformers.reverse.snowflake(payload.options.messageId) : "",
|
|
count: payload.options.count === 0 ? payload.options.count.toString() : "",
|
|
id: payload.options.id ? bot.transformers.reverse.snowflake(payload.options.id) : "",
|
|
type: payload.options.type.toString(),
|
|
role_name: payload.options.roleName,
|
|
// make up value to make ts shut up, the orginal value do not persevere in transformer
|
|
application_id: "",
|
|
}
|
|
: undefined,
|
|
reason: payload.reason,
|
|
};
|
|
}
|