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 });
});
|