summary refs log tree commit diff
path: root/api/src
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-09-14 13:13:50 +0200
committerGitHub <noreply@github.com>2021-09-14 13:13:50 +0200
commita8943553f99e7f12b612be4af96f34f947ce34e8 (patch)
tree4e5ffeeb3b819946cfe7a171a167724fb2988f84 /api/src
parentMerge pull request #359 from Thesourtimes/master (diff)
parentEmit INVITE_DELETE (diff)
downloadserver-a8943553f99e7f12b612be4af96f34f947ce34e8.tar.xz
Merge pull request #360 from AlTech98/invite
Invite fixes
Diffstat (limited to 'api/src')
-rw-r--r--api/src/routes/channels/#channel_id/invites.ts2
-rw-r--r--api/src/routes/invites/index.ts17
2 files changed, 16 insertions, 3 deletions
diff --git a/api/src/routes/channels/#channel_id/invites.ts b/api/src/routes/channels/#channel_id/invites.ts
index 2edb4fc2..71612e31 100644
--- a/api/src/routes/channels/#channel_id/invites.ts
+++ b/api/src/routes/channels/#channel_id/invites.ts
@@ -8,7 +8,7 @@ import { isTextChannel } from "./messages";
 const router: Router = Router();
 
 export interface InviteCreateSchema {
-	target_user_id?: string;
+	target_user_id?: string | null;
 	target_type?: string | null;
 	validate?: string | null; // ? what is this
 	max_age?: number;
diff --git a/api/src/routes/invites/index.ts b/api/src/routes/invites/index.ts
index 6e77a853..ae8a5944 100644
--- a/api/src/routes/invites/index.ts
+++ b/api/src/routes/invites/index.ts
@@ -1,7 +1,8 @@
 import { Router, Request, Response } from "express";
-import { getPermission, Guild, Invite, Member, PublicInviteRelation } from "@fosscord/util";
+import { emitEvent, getPermission, Guild, Invite, InviteDeleteEvent, Member, PublicInviteRelation } from "@fosscord/util";
 import { route } from "@fosscord/api";
 import { HTTPError } from "lambert-server";
+
 const router: Router = Router();
 
 router.get("/:code", route({}), async (req: Request, res: Response) => {
@@ -35,7 +36,19 @@ router.delete("/:code", route({}), async (req: Request, res: Response) => {
 	if (!permission.has("MANAGE_GUILD") && !permission.has("MANAGE_CHANNELS"))
 		throw new HTTPError("You missing the MANAGE_GUILD or MANAGE_CHANNELS permission", 401);
 
-	await Promise.all([Invite.delete({ code }), Guild.update({ vanity_url_code: code }, { vanity_url_code: undefined })]);
+	await Promise.all([
+		Invite.delete({ code }),
+		Guild.update({ vanity_url_code: code }, { vanity_url_code: undefined }),
+		emitEvent({
+			event: "INVITE_DELETE",
+			guild_id: guild_id,
+			data: {
+				channel_id: channel_id,
+				guild_id: guild_id,
+				code: code
+			}
+		} as InviteDeleteEvent)
+	]);
 
 	res.json({ invite: invite });
 });