summary refs log tree commit diff
path: root/src/routes/api/v8/channels/#channel_id/invites.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/api/v8/channels/#channel_id/invites.ts')
-rw-r--r--src/routes/api/v8/channels/#channel_id/invites.ts48
1 files changed, 0 insertions, 48 deletions
diff --git a/src/routes/api/v8/channels/#channel_id/invites.ts b/src/routes/api/v8/channels/#channel_id/invites.ts
deleted file mode 100644

index e3f2b77e..00000000 --- a/src/routes/api/v8/channels/#channel_id/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.user_id; - 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: new Date(), - guild_id: guID, - channel_id: chID, - inviter_id: usID, - }; - - await new InviteModel(invite).save(); - - await emitEvent({ event: "INVITE_CREATE", data: invite } as InviteCreateEvent); - res.status(201).send(invite); -}); - -export default router;