diff --git a/assets/openapi.json b/assets/openapi.json index e8acfd449..34fff09fe 100644 Binary files a/assets/openapi.json and b/assets/openapi.json differ diff --git a/assets/schemas.json b/assets/schemas.json index 57dd9d6ae..06555dbf0 100644 Binary files a/assets/schemas.json and b/assets/schemas.json differ diff --git a/src/api/routes/webhooks/#webhook_id/#webhook_token/messages/#message_id.ts b/src/api/routes/webhooks/#webhook_id/#webhook_token/messages/#message_id.ts index 0902765cf..8d69512aa 100644 --- a/src/api/routes/webhooks/#webhook_id/#webhook_token/messages/#message_id.ts +++ b/src/api/routes/webhooks/#webhook_id/#webhook_token/messages/#message_id.ts @@ -20,21 +20,9 @@ import { Request, Response, Router } from "express"; import { HTTPError } from "lambert-server/HTTPError"; import multer from "multer"; import { handleMessage, postHandleMessage, route } from "@spacebar/api/util"; -import { Attachment, Channel, Message, Webhook } from "@spacebar/database"; -import { - MessageCreateEvent, - MessageDeleteEvent, - MessageUpdateEvent, - Snowflake, - SpacebarApiErrors, - emitEvent, - getPermission, - getRights, - uploadFile, - NewUrlUserSignatureData, - DiscordApiErrors, -} from "@spacebar/util"; -import { MessageCreateAttachment, MessageCreateCloudAttachment, MessageCreateSchema, MessageEditSchema, ChannelType } from "@spacebar/schemas"; +import { Channel, Message, Webhook } from "@spacebar/database"; +import { MessageDeleteEvent, MessageUpdateEvent, emitEvent, DiscordApiErrors } from "@spacebar/util"; +import { ChannelType, WebhookExecuteSchema } from "@spacebar/schemas"; const router = Router({ mergeParams: true }); // TODO: message content/embed string length limit @@ -63,7 +51,7 @@ const messageUpload = multer({ router.patch( "/", route({ - requestBody: "MessageEditSchema", + requestBody: "WebhookExecuteSchema", responses: { 200: { body: "Message", @@ -77,7 +65,7 @@ router.patch( }), async (req: Request, res: Response) => { const { webhook_id, webhook_token, message_id } = req.params as { [key: string]: string }; - const body = req.body as MessageEditSchema; + const body = req.body as WebhookExecuteSchema; await assertValidWebhookAuth(webhook_id, webhook_token, message_id); @@ -91,7 +79,8 @@ router.patch( // TODO: should message_reference be overridable? message_reference: message.message_reference, ...body, - author_id: message.author_id, + // author_id: message.author_id, + author_id: undefined, // skip rights check webhook_id: message.webhook_id, channel_id: message.channel_id, id: message_id, diff --git a/src/schemas/uncategorised/WebhookExecuteSchema.ts b/src/schemas/uncategorised/WebhookExecuteSchema.ts index 147a2d1a8..655a239c5 100644 --- a/src/schemas/uncategorised/WebhookExecuteSchema.ts +++ b/src/schemas/uncategorised/WebhookExecuteSchema.ts @@ -16,7 +16,7 @@ along with this program. If not, see . */ -import { Embed } from "@spacebar/schemas"; +import { AllowedMentions, Embed } from "@spacebar/schemas"; import { MessageCreateAttachment, PollCreationSchema } from "./MessageCreateSchema"; export interface WebhookExecuteSchema { @@ -25,12 +25,7 @@ export interface WebhookExecuteSchema { avatar_url?: string; tts?: boolean; embeds?: Embed[]; - allowed_mentions?: { - parse?: string[]; - roles?: string[]; - users?: string[]; - replied_user?: boolean; - }; + allowed_mentions?: AllowedMentions; // eslint-disable-next-line @typescript-eslint/no-explicit-any components?: any[]; file?: { filename: string };