Message bulk delete: filter input IDs by channel rather than emitting the full input set

This commit is contained in:
Rory&
2026-08-04 12:46:40 +02:00
parent 65b137daca
commit 8d126f4019
@@ -65,12 +65,14 @@ router.post(
if (messages.length > maxBulkDelete) throw new HTTPError(`You cannot delete more than ${maxBulkDelete} messages`);
}
await Message.delete({ id: In(messages), channel_id: channel_id });
const messageIdsInChannel = (await Message.find({ where: { id: In(messages), channel_id: channel_id }, select: { id: true } })).map((x) => x.id);
await Message.delete({ id: In(messageIdsInChannel), channel_id: channel_id });
await emitEvent({
event: "MESSAGE_DELETE_BULK",
channel_id,
data: { ids: messages, channel_id, guild_id: channel.guild_id },
data: { ids: messageIdsInChannel, channel_id, guild_id: channel.guild_id },
} satisfies MessageDeleteBulkEvent);
res.sendStatus(204);