From 39e3b5ad7a8eb8f33d3d2278ba70c3747affd4ee Mon Sep 17 00:00:00 2001 From: Cyber Date: Sun, 18 Aug 2024 13:32:19 +0200 Subject: [PATCH] feat: emit `MESSAGE_CREATE` --- src/api/routes/channels/#channel_id/pins.ts | 45 ++++++++++++++------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/api/routes/channels/#channel_id/pins.ts b/src/api/routes/channels/#channel_id/pins.ts index b6bb66b9..d43db6ec 100644 --- a/src/api/routes/channels/#channel_id/pins.ts +++ b/src/api/routes/channels/#channel_id/pins.ts @@ -23,7 +23,9 @@ import { DiscordApiErrors, emitEvent, Message, + MessageCreateEvent, MessageUpdateEvent, + User, } from "@spacebar/util"; import { Request, Response, Router } from "express"; @@ -61,6 +63,30 @@ router.put( message.pinned = true; + const author = await User.getPublicUser(req.user_id); + + const systemPinMessage = Message.create({ + timestamp: new Date(), + type: 6, + guild_id: message.guild_id, + channel_id: message.channel_id, + author, + message_reference: { + message_id: message.id, + channel_id: message.channel_id, + guild_id: message.guild_id, + }, + reactions: [], + attachments: [], + embeds: [], + sticker_items: [], + edited_timestamp: undefined, + mentions: [], + mention_channels: [], + mention_roles: [], + mention_everyone: false, + }); + await Promise.all([ message.save(), emitEvent({ @@ -77,21 +103,12 @@ router.put( last_pin_timestamp: undefined, }, } as ChannelPinsUpdateEvent), - - Message.create({ - timestamp: new Date(), - type: 6, - embeds: [], - reactions: [], + systemPinMessage.save(), + emitEvent({ + event: "MESSAGE_CREATE", channel_id: message.channel_id, - guild_id: message.guild_id, - author_id: req.user_id, - message_reference: { - message_id: message.id, - channel_id: message.channel_id, - guild_id: message.guild_id, - }, - }).save(), + data: systemPinMessage, + } as MessageCreateEvent), ]); res.sendStatus(204);