✨ reactions bulk remove
This commit is contained in:
parent
1793c99d03
commit
b5f8a2e4e1
@ -5,6 +5,8 @@ import {
|
|||||||
MemberModel,
|
MemberModel,
|
||||||
MessageModel,
|
MessageModel,
|
||||||
MessageReactionAddEvent,
|
MessageReactionAddEvent,
|
||||||
|
MessageReactionRemoveAllEvent,
|
||||||
|
MessageReactionRemoveEmojiEvent,
|
||||||
MessageReactionRemoveEvent,
|
MessageReactionRemoveEvent,
|
||||||
PartialEmoji,
|
PartialEmoji,
|
||||||
PublicUserProjection,
|
PublicUserProjection,
|
||||||
@ -33,6 +35,66 @@ function getEmoji(emoji: string): PartialEmoji {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
router.delete("/", async (req, res) => {
|
||||||
|
const { message_id, channel_id } = req.params;
|
||||||
|
|
||||||
|
const channel = await ChannelModel.findOne({ id: channel_id }, { guild_id: true }).exec();
|
||||||
|
if (!channel) throw new HTTPError("Channel not found", 404);
|
||||||
|
|
||||||
|
const permissions = await getPermission(req.user_id, undefined, channel_id);
|
||||||
|
permissions.hasThrow("MANAGE_MESSAGES");
|
||||||
|
|
||||||
|
const message = await MessageModel.findOneAndUpdate({ id: message_id, channel_id }, { reactions: [] }).exec();
|
||||||
|
if (!message) throw new HTTPError("Message not found", 404);
|
||||||
|
|
||||||
|
await emitEvent({
|
||||||
|
event: "MESSAGE_REACTION_REMOVE_ALL",
|
||||||
|
channel_id,
|
||||||
|
guild_id: channel.guild_id,
|
||||||
|
data: {
|
||||||
|
channel_id,
|
||||||
|
message_id,
|
||||||
|
guild_id: channel.guild_id
|
||||||
|
}
|
||||||
|
} as MessageReactionRemoveAllEvent);
|
||||||
|
|
||||||
|
res.sendStatus(204);
|
||||||
|
});
|
||||||
|
|
||||||
|
router.delete("/:emoji", async (req, res) => {
|
||||||
|
const { message_id, channel_id } = req.params;
|
||||||
|
const emoji = getEmoji(req.params.emoji);
|
||||||
|
|
||||||
|
const channel = await ChannelModel.findOne({ id: channel_id }, { guild_id: true }).exec();
|
||||||
|
if (!channel) throw new HTTPError("Channel not found", 404);
|
||||||
|
|
||||||
|
const permissions = await getPermission(req.user_id, undefined, channel_id);
|
||||||
|
permissions.hasThrow("MANAGE_MESSAGES");
|
||||||
|
|
||||||
|
const message = await MessageModel.findOne({ id: message_id, channel_id }).exec();
|
||||||
|
if (!message) throw new HTTPError("Message not found", 404);
|
||||||
|
|
||||||
|
const already_added = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name);
|
||||||
|
if (!already_added) throw new HTTPError("Reaction not found", 404);
|
||||||
|
message.reactions.remove(already_added);
|
||||||
|
|
||||||
|
await MessageModel.updateOne({ id: message_id, channel_id }, message).exec();
|
||||||
|
|
||||||
|
await emitEvent({
|
||||||
|
event: "MESSAGE_REACTION_REMOVE_EMOJI",
|
||||||
|
channel_id,
|
||||||
|
guild_id: channel.guild_id,
|
||||||
|
data: {
|
||||||
|
channel_id,
|
||||||
|
message_id,
|
||||||
|
guild_id: channel.guild_id,
|
||||||
|
emoji
|
||||||
|
}
|
||||||
|
} as MessageReactionRemoveEmojiEvent);
|
||||||
|
|
||||||
|
res.sendStatus(204);
|
||||||
|
});
|
||||||
|
|
||||||
router.get("/:emoji", async (req, res) => {
|
router.get("/:emoji", async (req, res) => {
|
||||||
const { message_id, channel_id } = req.params;
|
const { message_id, channel_id } = req.params;
|
||||||
const emoji = getEmoji(req.params.emoji);
|
const emoji = getEmoji(req.params.emoji);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user