xyter/src/events/guildMemberRemove/index.ts
2023-01-26 18:43:30 +01:00

34 lines
867 B
TypeScript

// 3rd party dependencies
import { GuildMember } from "discord.js";
import prisma from "../../handlers/prisma";
import { IEventOptions } from "../../interfaces/EventOptions";
import logger from "../../middlewares/logger";
import sendAuditEntry from "./components/sendAuditEntry";
import sendLeaveMessage from "./components/sendLeaveMessage";
export const options: IEventOptions = {
type: "on",
};
// Execute the function
export const execute = async (member: GuildMember) => {
const { user, guild } = member;
logger.verbose({
message: `User: ${user.tag} (${user.id}) left guild: ${guild.name} (${guild.id})`,
guild,
user,
});
await sendAuditEntry(member);
await sendLeaveMessage(member);
await prisma.guildMember.delete({
where: {
userId_guildId: {
userId: user.id,
guildId: guild.id,
},
},
});
};