diff options
Diffstat (limited to 'api/src/routes/channels/#channel_id')
-rw-r--r-- | api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts | 36 | ||||
-rw-r--r-- | api/src/routes/channels/#channel_id/recipients.ts | 41 |
2 files changed, 42 insertions, 35 deletions
diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts b/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts index de0c01f1..b2cb6763 100644 --- a/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts +++ b/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts @@ -6,25 +6,23 @@ const router = Router(); router.post("/", route({ permission: "MANAGE_MESSAGES" }), (req: Request, res: Response) => { // TODO: res.json({ - id: "", - type: 0, - content: "", - channel_id: "", - author: {id: "", - username: "", - avatar: "", - discriminator: "", public_flags: 64}, - attachments: [], - embeds: [], - mentions: [], - mention_roles: [], - pinned: false, - mention_everyone: false, - tts: false, - timestamp: "", - edited_timestamp: null, - flags: 1, components: []}).status(200); + id: "", + type: 0, + content: "", + channel_id: "", + author: { id: "", username: "", avatar: "", discriminator: "", public_flags: 64 }, + attachments: [], + embeds: [], + mentions: [], + mention_roles: [], + pinned: false, + mention_everyone: false, + tts: false, + timestamp: "", + edited_timestamp: null, + flags: 1, + components: [] + }).status(200); }); export default router; - diff --git a/api/src/routes/channels/#channel_id/recipients.ts b/api/src/routes/channels/#channel_id/recipients.ts index 83b62049..e6466211 100644 --- a/api/src/routes/channels/#channel_id/recipients.ts +++ b/api/src/routes/channels/#channel_id/recipients.ts @@ -1,6 +1,16 @@ import { Request, Response, Router } from "express"; -import { Channel, ChannelRecipientAddEvent, ChannelType, DiscordApiErrors, DmChannelDTO, emitEvent, PublicUserProjection, Recipient, User } from "@fosscord/util"; -import { route } from "@fosscord/api" +import { + Channel, + ChannelRecipientAddEvent, + ChannelType, + DiscordApiErrors, + DmChannelDTO, + emitEvent, + PublicUserProjection, + Recipient, + User +} from "@fosscord/util"; +import { route } from "@fosscord/api"; const router: Router = Router(); @@ -9,20 +19,17 @@ router.put("/:user_id", route({}), async (req: Request, res: Response) => { const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); if (channel.type !== ChannelType.GROUP_DM) { - const recipients = [ - ...channel.recipients!.map(r => r.user_id), - user_id - ].unique() + const recipients = [...channel.recipients!.map((r) => r.user_id), user_id].unique(); - const new_channel = await Channel.createDMChannel(recipients, req.user_id) + const new_channel = await Channel.createDMChannel(recipients, req.user_id); return res.status(201).json(new_channel); } else { - if (channel.recipients!.map(r => r.user_id).includes(user_id)) { - throw DiscordApiErrors.INVALID_RECIPIENT //TODO is this the right error? + if (channel.recipients!.map((r) => r.user_id).includes(user_id)) { + throw DiscordApiErrors.INVALID_RECIPIENT; //TODO is this the right error? } channel.recipients!.push(new Recipient({ channel_id: channel_id, user_id: user_id })); - await channel.save() + await channel.save(); await emitEvent({ event: "CHANNEL_CREATE", @@ -31,10 +38,12 @@ router.put("/:user_id", route({}), async (req: Request, res: Response) => { }); await emitEvent({ - event: "CHANNEL_RECIPIENT_ADD", data: { + event: "CHANNEL_RECIPIENT_ADD", + data: { channel_id: channel_id, user: await User.findOneOrFail({ where: { id: user_id }, select: PublicUserProjection }) - }, channel_id: channel_id + }, + channel_id: channel_id } as ChannelRecipientAddEvent); return res.sendStatus(204); } @@ -44,13 +53,13 @@ router.delete("/:user_id", route({}), async (req: Request, res: Response) => { const { channel_id, user_id } = req.params; const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); if (!(channel.type === ChannelType.GROUP_DM && (channel.owner_id === req.user_id || user_id === req.user_id))) - throw DiscordApiErrors.MISSING_PERMISSIONS + throw DiscordApiErrors.MISSING_PERMISSIONS; - if (!channel.recipients!.map(r => r.user_id).includes(user_id)) { - throw DiscordApiErrors.INVALID_RECIPIENT //TODO is this the right error? + if (!channel.recipients!.map((r) => r.user_id).includes(user_id)) { + throw DiscordApiErrors.INVALID_RECIPIENT; //TODO is this the right error? } - await Channel.removeRecipientFromChannel(channel, user_id) + await Channel.removeRecipientFromChannel(channel, user_id); return res.sendStatus(204); }); |