From 4b9f36d344ec37eeb788ebb4f4c7e9e4d5c2e7a2 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Wed, 3 Mar 2021 21:14:14 +0100 Subject: :construction: messages route --- src/routes/api/v8/channels/#CHANNELID/followers.ts | 4 -- src/routes/api/v8/channels/#CHANNELID/index.ts | 4 -- src/routes/api/v8/channels/#CHANNELID/invites.ts | 48 ---------------------- src/routes/api/v8/channels/#CHANNELID/messages.ts | 4 -- .../api/v8/channels/#CHANNELID/permissions.ts | 4 -- src/routes/api/v8/channels/#CHANNELID/pins.ts | 4 -- .../api/v8/channels/#CHANNELID/recipients.ts | 4 -- src/routes/api/v8/channels/#CHANNELID/typing.ts | 4 -- src/routes/api/v8/channels/#CHANNELID/webhooks.ts | 4 -- .../api/v8/channels/#channel_id/followers.ts | 4 ++ src/routes/api/v8/channels/#channel_id/index.ts | 4 ++ src/routes/api/v8/channels/#channel_id/invites.ts | 48 ++++++++++++++++++++++ src/routes/api/v8/channels/#channel_id/messages.ts | 27 ++++++++++++ .../api/v8/channels/#channel_id/permissions.ts | 4 ++ src/routes/api/v8/channels/#channel_id/pins.ts | 4 ++ .../api/v8/channels/#channel_id/recipients.ts | 4 ++ src/routes/api/v8/channels/#channel_id/typing.ts | 4 ++ src/routes/api/v8/channels/#channel_id/webhooks.ts | 4 ++ 18 files changed, 103 insertions(+), 80 deletions(-) delete mode 100644 src/routes/api/v8/channels/#CHANNELID/followers.ts delete mode 100644 src/routes/api/v8/channels/#CHANNELID/index.ts delete mode 100644 src/routes/api/v8/channels/#CHANNELID/invites.ts delete mode 100644 src/routes/api/v8/channels/#CHANNELID/messages.ts delete mode 100644 src/routes/api/v8/channels/#CHANNELID/permissions.ts delete mode 100644 src/routes/api/v8/channels/#CHANNELID/pins.ts delete mode 100644 src/routes/api/v8/channels/#CHANNELID/recipients.ts delete mode 100644 src/routes/api/v8/channels/#CHANNELID/typing.ts delete mode 100644 src/routes/api/v8/channels/#CHANNELID/webhooks.ts create mode 100644 src/routes/api/v8/channels/#channel_id/followers.ts create mode 100644 src/routes/api/v8/channels/#channel_id/index.ts create mode 100644 src/routes/api/v8/channels/#channel_id/invites.ts create mode 100644 src/routes/api/v8/channels/#channel_id/messages.ts create mode 100644 src/routes/api/v8/channels/#channel_id/permissions.ts create mode 100644 src/routes/api/v8/channels/#channel_id/pins.ts create mode 100644 src/routes/api/v8/channels/#channel_id/recipients.ts create mode 100644 src/routes/api/v8/channels/#channel_id/typing.ts create mode 100644 src/routes/api/v8/channels/#channel_id/webhooks.ts (limited to 'src') diff --git a/src/routes/api/v8/channels/#CHANNELID/followers.ts b/src/routes/api/v8/channels/#CHANNELID/followers.ts deleted file mode 100644 index 9a4e81fa..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/followers.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Router } from "express"; -const router: Router = Router(); - -export default router; diff --git a/src/routes/api/v8/channels/#CHANNELID/index.ts b/src/routes/api/v8/channels/#CHANNELID/index.ts deleted file mode 100644 index 9a4e81fa..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Router } from "express"; -const router: Router = Router(); - -export default router; diff --git a/src/routes/api/v8/channels/#CHANNELID/invites.ts b/src/routes/api/v8/channels/#CHANNELID/invites.ts deleted file mode 100644 index ee71d1ee..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/invites.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Router, Request, Response } from "express"; -import { HTTPError } from "lambert-server"; - -import { check } from "../../../../../util/instanceOf"; -import { random } from "../../../../../util/RandomInviteID"; -import { emitEvent } from "../../../../../util/Event"; - -import { InviteCreateSchema } from "../../../../../schema/Invite"; - -import { getPermission, ChannelModel, InviteModel, InviteCreateEvent } from "fosscord-server-util"; - -const router: Router = Router(); - -router.post("/", check(InviteCreateSchema), async (req: Request, res: Response) => { - const usID = req.userid; - const chID = BigInt(req.params.channelid); - const channel = await ChannelModel.findOne({ id: chID }).exec(); - - if (!channel || !channel.guild_id) { - throw new HTTPError("This channel doesn't exist", 404); - } - const { guild_id: guID } = channel; - - const permission = await getPermission(usID, guID); - - if (!permission.has("CREATE_INSTANT_INVITE")) { - throw new HTTPError("You aren't authorised to access this endpoint", 401); - } - - const invite = { - code: random(), - temporary: req.body.temporary, - uses: 0, - max_uses: req.body.max_uses, - max_age: req.body.max_age, - created_at: Date.now(), - guild_id: guID, - channel_id: chID, - inviter_id: usID, - }; - - await new InviteModel(invite).save(); // ! samuel ist ein hurensohn - - await emitEvent({ event: "INVITE_CREATE", data: invite } as InviteCreateEvent); - res.status(201).send(invite); -}); - -export default router; diff --git a/src/routes/api/v8/channels/#CHANNELID/messages.ts b/src/routes/api/v8/channels/#CHANNELID/messages.ts deleted file mode 100644 index 9a4e81fa..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/messages.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Router } from "express"; -const router: Router = Router(); - -export default router; diff --git a/src/routes/api/v8/channels/#CHANNELID/permissions.ts b/src/routes/api/v8/channels/#CHANNELID/permissions.ts deleted file mode 100644 index 9a4e81fa..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/permissions.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Router } from "express"; -const router: Router = Router(); - -export default router; diff --git a/src/routes/api/v8/channels/#CHANNELID/pins.ts b/src/routes/api/v8/channels/#CHANNELID/pins.ts deleted file mode 100644 index 9a4e81fa..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/pins.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Router } from "express"; -const router: Router = Router(); - -export default router; diff --git a/src/routes/api/v8/channels/#CHANNELID/recipients.ts b/src/routes/api/v8/channels/#CHANNELID/recipients.ts deleted file mode 100644 index 9a4e81fa..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/recipients.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Router } from "express"; -const router: Router = Router(); - -export default router; diff --git a/src/routes/api/v8/channels/#CHANNELID/typing.ts b/src/routes/api/v8/channels/#CHANNELID/typing.ts deleted file mode 100644 index 9a4e81fa..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/typing.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Router } from "express"; -const router: Router = Router(); - -export default router; diff --git a/src/routes/api/v8/channels/#CHANNELID/webhooks.ts b/src/routes/api/v8/channels/#CHANNELID/webhooks.ts deleted file mode 100644 index 9a4e81fa..00000000 --- a/src/routes/api/v8/channels/#CHANNELID/webhooks.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Router } from "express"; -const router: Router = Router(); - -export default router; diff --git a/src/routes/api/v8/channels/#channel_id/followers.ts b/src/routes/api/v8/channels/#channel_id/followers.ts new file mode 100644 index 00000000..9a4e81fa --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/followers.ts @@ -0,0 +1,4 @@ +import { Router } from "express"; +const router: Router = Router(); + +export default router; diff --git a/src/routes/api/v8/channels/#channel_id/index.ts b/src/routes/api/v8/channels/#channel_id/index.ts new file mode 100644 index 00000000..9a4e81fa --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/index.ts @@ -0,0 +1,4 @@ +import { Router } from "express"; +const router: Router = Router(); + +export default router; diff --git a/src/routes/api/v8/channels/#channel_id/invites.ts b/src/routes/api/v8/channels/#channel_id/invites.ts new file mode 100644 index 00000000..2bf8664f --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/invites.ts @@ -0,0 +1,48 @@ +import { Router, Request, Response } from "express"; +import { HTTPError } from "lambert-server"; + +import { check } from "../../../../../util/instanceOf"; +import { random } from "../../../../../util/RandomInviteID"; +import { emitEvent } from "../../../../../util/Event"; + +import { InviteCreateSchema } from "../../../../../schema/Invite"; + +import { getPermission, ChannelModel, InviteModel, InviteCreateEvent } from "fosscord-server-util"; + +const router: Router = Router(); + +router.post("/", check(InviteCreateSchema), async (req: Request, res: Response) => { + const usID = req.userid; + const chID = BigInt(req.params.channel_id); + const channel = await ChannelModel.findOne({ id: chID }).exec(); + + if (!channel || !channel.guild_id) { + throw new HTTPError("This channel doesn't exist", 404); + } + const { guild_id: guID } = channel; + + const permission = await getPermission(usID, guID); + + if (!permission.has("CREATE_INSTANT_INVITE")) { + throw new HTTPError("You aren't authorised to access this endpoint", 401); + } + + const invite = { + code: random(), + temporary: req.body.temporary, + uses: 0, + max_uses: req.body.max_uses, + max_age: req.body.max_age, + created_at: Date.now(), + guild_id: guID, + channel_id: chID, + inviter_id: usID, + }; + + await new InviteModel(invite).save(); // ! samuel ist ein hurensohn + + await emitEvent({ event: "INVITE_CREATE", data: invite } as InviteCreateEvent); + res.status(201).send(invite); +}); + +export default router; diff --git a/src/routes/api/v8/channels/#channel_id/messages.ts b/src/routes/api/v8/channels/#channel_id/messages.ts new file mode 100644 index 00000000..0826cf94 --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/messages.ts @@ -0,0 +1,27 @@ +import { Router } from "express"; +import { ChannelModel, ChannelType, getPermission, MessageModel } from "fosscord-server-util"; +import { HTTPError } from "lambert-server"; +const router: Router = Router(); + +export default router; + +router.get("/", async (req, res) => { + const channel_id = BigInt(req.params.channel_id); + const channel = await ChannelModel.findOne( + { id: channel_id }, + { guild_id: true, type: true, permission_overwrites: true } + ).exec(); + if (!channel) throw new HTTPError("Channel not found", 404); + + const type: ChannelType = channel.type; + + getPermission(req.userid, channel.guild_id, channel_id); + + if (channel.guild_id) { + channel.permission_overwrites; + } else if (channel.recipients) { + // group/dm channel + } else { + // idk what this channel is, can probably be removed + } +}); diff --git a/src/routes/api/v8/channels/#channel_id/permissions.ts b/src/routes/api/v8/channels/#channel_id/permissions.ts new file mode 100644 index 00000000..9a4e81fa --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/permissions.ts @@ -0,0 +1,4 @@ +import { Router } from "express"; +const router: Router = Router(); + +export default router; diff --git a/src/routes/api/v8/channels/#channel_id/pins.ts b/src/routes/api/v8/channels/#channel_id/pins.ts new file mode 100644 index 00000000..9a4e81fa --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/pins.ts @@ -0,0 +1,4 @@ +import { Router } from "express"; +const router: Router = Router(); + +export default router; diff --git a/src/routes/api/v8/channels/#channel_id/recipients.ts b/src/routes/api/v8/channels/#channel_id/recipients.ts new file mode 100644 index 00000000..9a4e81fa --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/recipients.ts @@ -0,0 +1,4 @@ +import { Router } from "express"; +const router: Router = Router(); + +export default router; diff --git a/src/routes/api/v8/channels/#channel_id/typing.ts b/src/routes/api/v8/channels/#channel_id/typing.ts new file mode 100644 index 00000000..9a4e81fa --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/typing.ts @@ -0,0 +1,4 @@ +import { Router } from "express"; +const router: Router = Router(); + +export default router; diff --git a/src/routes/api/v8/channels/#channel_id/webhooks.ts b/src/routes/api/v8/channels/#channel_id/webhooks.ts new file mode 100644 index 00000000..9a4e81fa --- /dev/null +++ b/src/routes/api/v8/channels/#channel_id/webhooks.ts @@ -0,0 +1,4 @@ +import { Router } from "express"; +const router: Router = Router(); + +export default router; -- cgit 1.5.1