diff --git a/src/api/util/handlers/Webhook.ts b/src/api/util/handlers/Webhook.ts
index 9040f74c..f3c31644 100644
--- a/src/api/util/handlers/Webhook.ts
+++ b/src/api/util/handlers/Webhook.ts
@@ -1,24 +1,15 @@
import { handleMessage, postHandleMessage } from "@spacebar/api";
-import {
- Attachment,
- Config,
- DiscordApiErrors,
- emitEvent,
- FieldErrors,
- Message,
- MessageCreateEvent,
- uploadFile,
- ValidateName,
- Webhook,
-} from "@spacebar/util";
+import { Attachment, Config, DiscordApiErrors, emitEvent, FieldErrors, Message, MessageCreateEvent, uploadFile, ValidateName, Webhook } from "@spacebar/util";
import { Request, Response } from "express";
import { HTTPError } from "lambert-server";
import { MoreThan } from "typeorm";
-import { WebhookExecuteSchema } from "@spacebar/schemas"
+import { WebhookExecuteSchema } from "@spacebar/schemas";
export const executeWebhook = async (req: Request, res: Response) => {
const { wait } = req.query;
- if (!wait) return res.status(204).send();
+ if (!wait) {
+ res.status(204).send();
+ }
const { webhook_id, token } = req.params;
@@ -26,13 +17,7 @@ export const executeWebhook = async (req: Request, res: Response) => {
const attachments: Attachment[] = [];
// ensure one of content, embeds, components, or file is present
- if (
- !body.content &&
- !body.embeds &&
- !body.components &&
- !body.file &&
- !body.attachments
- ) {
+ if (!body.content && !body.embeds && !body.components && !body.file && !body.attachments) {
throw DiscordApiErrors.CANNOT_SEND_EMPTY_MESSAGE;
}
@@ -47,9 +32,11 @@ export const executeWebhook = async (req: Request, res: Response) => {
const blockedEquals = ["everyone", "here"];
for (const word of blockedEquals) {
if (body.username?.toLowerCase() === word) {
- return res.status(400).json({
- username: [`Username cannot be "${word}"`],
- });
+ if (wait)
+ res.status(400).json({
+ username: [`Username cannot be "${word}"`],
+ });
+ return;
}
}
@@ -65,10 +52,7 @@ export const executeWebhook = async (req: Request, res: Response) => {
}
if (!webhook.channel.isWritable()) {
- throw new HTTPError(
- `Cannot send messages to channel of type ${webhook.channel.type}`,
- 400,
- );
+ throw new HTTPError(`Cannot send messages to channel of type ${webhook.channel.type}`, 400);
}
if (webhook.token !== token) {
@@ -81,11 +65,7 @@ export const executeWebhook = async (req: Request, res: Response) => {
const count = await Message.count({
where: {
channel_id: webhook.channel_id,
- timestamp: MoreThan(
- new Date(
- Date.now() - limits.absoluteRate.sendMessage.window,
- ),
- ),
+ timestamp: MoreThan(new Date(Date.now() - limits.absoluteRate.sendMessage.window)),
},
});
@@ -101,15 +81,11 @@ export const executeWebhook = async (req: Request, res: Response) => {
const files = (req.files as Express.Multer.File[]) ?? [];
for (const currFile of files) {
try {
- const file = await uploadFile(
- `/attachments/${webhook.channel.id}`,
- currFile,
- );
- attachments.push(
- Attachment.create({ ...file, proxy_url: file.url }),
- );
+ const file = await uploadFile(`/attachments/${webhook.channel.id}`, currFile);
+ attachments.push(Attachment.create({ ...file, proxy_url: file.url }));
} catch (error) {
- return res.status(400).json({ message: error?.toString() });
+ if (wait) res.status(400).json({ message: error?.toString() });
+ return;
}
}
@@ -146,9 +122,7 @@ export const executeWebhook = async (req: Request, res: Response) => {
]);
// no await as it shouldnt block the message send function and silently catch error
- postHandleMessage(message).catch((e) =>
- console.error("[Message] post-message handler failed", e),
- );
-
- return res.json(message);
+ postHandleMessage(message).catch((e) => console.error("[Message] post-message handler failed", e));
+ if (wait) res.json(message);
+ return;
};
|