summary refs log tree commit diff
path: root/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/routes/channels/#channel_id/messages/bulk-delete.ts')
-rw-r--r--src/api/routes/channels/#channel_id/messages/bulk-delete.ts85
1 files changed, 54 insertions, 31 deletions
diff --git a/src/api/routes/channels/#channel_id/messages/bulk-delete.ts b/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
index 6493c16a..553ab17e 100644
--- a/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
+++ b/src/api/routes/channels/#channel_id/messages/bulk-delete.ts
@@ -1,5 +1,13 @@
 import { Router, Response, Request } from "express";
-import { Channel, Config, emitEvent, getPermission, getRights, MessageDeleteBulkEvent, Message } from "@fosscord/util";
+import {
+	Channel,
+	Config,
+	emitEvent,
+	getPermission,
+	getRights,
+	MessageDeleteBulkEvent,
+	Message,
+} from "@fosscord/util";
 import { HTTPError } from "lambert-server";
 import { route } from "@fosscord/api";
 
@@ -10,33 +18,48 @@ export default router;
 // should users be able to bulk delete messages or only bots? ANSWER: all users
 // should this request fail, if you provide messages older than 14 days/invalid ids? ANSWER: NO
 // https://discord.com/developers/docs/resources/channel#bulk-delete-messages
-router.post("/", route({ body: "BulkDeleteSchema" }), async (req: Request, res: Response) => {
-	const { channel_id } = req.params;
-	const channel = await Channel.findOneOrFail({ where: { id: channel_id } });
-	if (!channel.guild_id) throw new HTTPError("Can't bulk delete dm channel messages", 400);
-
-	const rights = await getRights(req.user_id);
-	rights.hasThrow("SELF_DELETE_MESSAGES");
-	
-	let superuser = rights.has("MANAGE_MESSAGES");
-	const permission = await getPermission(req.user_id, channel?.guild_id, channel_id);
-		
-	const { maxBulkDelete } = Config.get().limits.message;
-
-	const { messages } = req.body as { messages: string[] };
-	if (messages.length === 0) throw new HTTPError("You must specify messages to bulk delete");
-	if (!superuser) {
-		permission.hasThrow("MANAGE_MESSAGES");
-		if (messages.length > maxBulkDelete) throw new HTTPError(`You cannot delete more than ${maxBulkDelete} messages`);
-	}
-
-	await Message.delete(messages);
-
-	await emitEvent({
-		event: "MESSAGE_DELETE_BULK",
-		channel_id,
-		data: { ids: messages, channel_id, guild_id: channel.guild_id }
-	} as MessageDeleteBulkEvent);
-
-	res.sendStatus(204);
-});
+router.post(
+	"/",
+	route({ body: "BulkDeleteSchema" }),
+	async (req: Request, res: Response) => {
+		const { channel_id } = req.params;
+		const channel = await Channel.findOneOrFail({
+			where: { id: channel_id },
+		});
+		if (!channel.guild_id)
+			throw new HTTPError("Can't bulk delete dm channel messages", 400);
+
+		const rights = await getRights(req.user_id);
+		rights.hasThrow("SELF_DELETE_MESSAGES");
+
+		let superuser = rights.has("MANAGE_MESSAGES");
+		const permission = await getPermission(
+			req.user_id,
+			channel?.guild_id,
+			channel_id,
+		);
+
+		const { maxBulkDelete } = Config.get().limits.message;
+
+		const { messages } = req.body as { messages: string[] };
+		if (messages.length === 0)
+			throw new HTTPError("You must specify messages to bulk delete");
+		if (!superuser) {
+			permission.hasThrow("MANAGE_MESSAGES");
+			if (messages.length > maxBulkDelete)
+				throw new HTTPError(
+					`You cannot delete more than ${maxBulkDelete} messages`,
+				);
+		}
+
+		await Message.delete(messages);
+
+		await emitEvent({
+			event: "MESSAGE_DELETE_BULK",
+			channel_id,
+			data: { ids: messages, channel_id, guild_id: channel.guild_id },
+		} as MessageDeleteBulkEvent);
+
+		res.sendStatus(204);
+	},
+);