Moved all db logic to db functions
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { ApplicationCommandType, ContextMenuCommandBuilder, InteractionContextType, PermissionFlagsBits, userMention } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerify } from "src/drizzle/functions"
|
||||
import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js"
|
||||
import { waitingListRole } from "~/config/roles.js"
|
||||
import { IContextMenu } from "~/interfaces"
|
||||
@@ -24,9 +25,7 @@ export default {
|
||||
const targetId = interaction.targetId
|
||||
const user = await interaction.guild!.members.fetch(targetId)
|
||||
const usermentioned = userMention(user.user.id)
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
const verifyData = await getVerify({ userID: user.id })
|
||||
|
||||
if (!verifyData) {
|
||||
await user.setNickname(`${user.user.username} (X)`, "User used the update command").catch(() => {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { addSetting, getSetting, updateSetting } from "src/drizzle/functions"
|
||||
import { settings } from "src/drizzle/schema.js"
|
||||
import { embedColor } from "~/config/options.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
@@ -38,12 +39,10 @@ export default {
|
||||
|
||||
const setting = interaction.options.getString("setting")!
|
||||
const value = interaction.options.getString("value")!
|
||||
const settingsData = await db.query.settings.findFirst({
|
||||
where: ({ name }, { eq }) => eq(name, setting)
|
||||
})
|
||||
const settingsData = await getSetting({ name: setting })
|
||||
|
||||
if (!settingsData) {
|
||||
await db.insert(settings).values({
|
||||
await addSetting({
|
||||
name: setting,
|
||||
value: value
|
||||
})
|
||||
@@ -55,9 +54,9 @@ export default {
|
||||
}]
|
||||
})
|
||||
} else {
|
||||
await db.update(settings).set({
|
||||
value: value
|
||||
}).where(eq(settings.name, setting))
|
||||
await updateSetting({
|
||||
value
|
||||
})
|
||||
|
||||
await interaction.editReply({
|
||||
embeds: [{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerify } from "src/drizzle/functions"
|
||||
import { devMessage, embedColor } from "~/config/options.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
import { getHeadURL, getIGN, getUUID } from "~/utils/Hypixel.js"
|
||||
@@ -37,9 +38,7 @@ export default {
|
||||
return
|
||||
}
|
||||
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: ({ uuid: uuidfromdb }, { eq }) => eq(uuidfromdb, uuid)
|
||||
})
|
||||
const verifyData = await getVerify({ uuid })
|
||||
if (!verifyData) {
|
||||
await interaction.editReply({
|
||||
embeds: [{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { GuildMember, InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerify, removeVerify } from "src/drizzle/functions"
|
||||
import { verifies } from "src/drizzle/schema.js"
|
||||
import { devMessage, embedColor } from "~/config/options.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
@@ -28,9 +29,7 @@ export default {
|
||||
|
||||
async execute({ interaction }) {
|
||||
const member = interaction.options.getMember("user") as GuildMember
|
||||
const verifiedUser = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, member.user.id)
|
||||
})
|
||||
const verifiedUser = await getVerify({ userID: member.user.id })
|
||||
const mod = interaction.user
|
||||
|
||||
if (!verifiedUser) {
|
||||
@@ -45,7 +44,7 @@ export default {
|
||||
|
||||
const uuid = verifiedUser.uuid
|
||||
const ign = await getIGN(uuid)
|
||||
await db.delete(verifies).where(eq(verifies.userID, member.user.id))
|
||||
await removeVerify({ userID: member.user.id })
|
||||
await member.roles.remove(
|
||||
roleManage("all").rolesToRemove,
|
||||
"User force unverified by " + interaction.user.username
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GuildMember, InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerify } from "src/drizzle/functions"
|
||||
import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js"
|
||||
import { waitingListRole } from "~/config/roles.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
@@ -29,9 +30,7 @@ export default {
|
||||
|
||||
const user = interaction.options.getMember("user") as GuildMember
|
||||
const usermentioned = userMention(user.user.id)
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
const verifyData = await getVerify({ userID: user.user.id })
|
||||
|
||||
if (!verifyData) {
|
||||
await user.setNickname(`${user.user.username} (X)`, "User used the update command").catch(() => {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GuildMember, InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { addVerify, getVerify } from "src/drizzle/functions"
|
||||
import { verifies } from "src/drizzle/schema.js"
|
||||
import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
@@ -38,9 +39,7 @@ export default {
|
||||
const ign = interaction.options.getString("ign")!
|
||||
const mod = interaction.user
|
||||
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
const verifyData = await getVerify({ userID: user.id })
|
||||
if (verifyData) {
|
||||
interaction.editReply("That user is already verified.")
|
||||
return
|
||||
@@ -141,7 +140,7 @@ export default {
|
||||
// Do nothing
|
||||
})
|
||||
|
||||
await db.insert(verifies).values({
|
||||
await addVerify({
|
||||
userID: user.user.id,
|
||||
uuid: uuid
|
||||
})
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { GuildMember, InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getWaitingList, removeWaitingList } from "src/drizzle/functions"
|
||||
import { waitingLists } from "src/drizzle/schema.js"
|
||||
import { devMessage, embedColor } from "~/config/options.js"
|
||||
import { waitingListRole } from "~/config/roles.js"
|
||||
@@ -36,9 +37,7 @@ export default {
|
||||
const member = interaction.options.getMember("user") as GuildMember
|
||||
const reason = interaction.options.getString("reason") ?? "No reason provided."
|
||||
const mod = interaction.user!
|
||||
const waiting = await db.query.waitingLists.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, member.user.id)
|
||||
})
|
||||
const waiting = await getWaitingList({ userID: member.user.id })
|
||||
|
||||
if (!waiting) {
|
||||
await interaction.editReply({
|
||||
@@ -50,7 +49,7 @@ export default {
|
||||
return
|
||||
}
|
||||
|
||||
await db.delete(waitingLists).where(eq(waitingLists.userID, member.user.id))
|
||||
await removeWaitingList({ userID: member.user.id })
|
||||
await member.roles.remove(waitingListRole, "Removed from waiting list.")
|
||||
|
||||
await logToChannel("mod", {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ChatInputCommandInteraction, GuildMember } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerifies } from "src/drizzle/functions"
|
||||
import { embedColor, hypixelGuildID } from "~/config/options.js"
|
||||
import { IGuildData } from "~/interfaces"
|
||||
import env from "~/utils/Env.js"
|
||||
@@ -35,7 +36,7 @@ export default async function removeGuildRoles(interaction: ChatInputCommandInte
|
||||
|
||||
const hypixelGuildMembers = guildData.members.map(gmember => gmember.uuid)
|
||||
|
||||
const verifiedUsers = await db.query.verifies.findMany()
|
||||
const verifiedUsers = await getVerifies()
|
||||
|
||||
for (const gmember of guildMembers) {
|
||||
const gmemberuuid = verifiedUsers.find(user => user.userID === gmember.id)?.uuid
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ChannelType, ChatInputCommandInteraction, GuildMember } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerifies } from "src/drizzle/functions"
|
||||
import { embedColor, hypixelGuildID } from "~/config/options.js"
|
||||
import { IGuildData } from "~/interfaces"
|
||||
import env from "~/utils/Env.js"
|
||||
@@ -53,7 +54,7 @@ export default async function updateAll(interaction: ChatInputCommandInteraction
|
||||
})
|
||||
const guildMemberIDs = hypixelGuildMembers.map(gmember => gmember.uuid)
|
||||
|
||||
const verifiedUsers = await db.query.verifies.findMany()
|
||||
const verifiedUsers = await getVerifies()
|
||||
|
||||
await interaction.editReply({
|
||||
embeds: [{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GuildMember, InteractionContextType, SlashCommandBuilder } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerify } from "src/drizzle/functions"
|
||||
import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js"
|
||||
import { waitingListRole } from "~/config/roles.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
@@ -21,9 +22,7 @@ export default {
|
||||
await interaction.deferReply()
|
||||
|
||||
const user = interaction.member as GuildMember
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
const verifyData = await getVerify({ userID: user.id })
|
||||
|
||||
if (!verifyData) {
|
||||
await user.setNickname(`${user.user.username} (X)`, "User used the update command").catch(() => {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GuildMember, InteractionContextType, SlashCommandBuilder } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { addVerify, getVerify } from "src/drizzle/functions"
|
||||
import { verifies } from "src/drizzle/schema.js"
|
||||
import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
@@ -33,9 +34,7 @@ export default {
|
||||
const user = interaction.member! as GuildMember
|
||||
const ign = interaction.options.getString("ign")!
|
||||
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
const verifyData = await getVerify({ userID: user.id })
|
||||
if (verifyData) {
|
||||
interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.")
|
||||
return
|
||||
@@ -166,7 +165,7 @@ export default {
|
||||
// Do nothing
|
||||
})
|
||||
|
||||
await db.insert(verifies).values({
|
||||
await addVerify({
|
||||
userID: user.id,
|
||||
uuid: uuid
|
||||
})
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { InteractionContextType, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerify } from "src/drizzle/functions"
|
||||
import { devMessage, embedColor } from "~/config/options.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
import { getHeadURL, getIGN } from "~/utils/Hypixel.js"
|
||||
@@ -19,9 +20,7 @@ export default {
|
||||
await interaction.deferReply()
|
||||
|
||||
const user = interaction.user
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
const verifyData = await getVerify({ userID: user.id })
|
||||
|
||||
if (!verifyData) {
|
||||
await interaction.editReply({
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, userMention } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getVerify } from "src/drizzle/functions"
|
||||
import { devMessage, embedColor } from "~/config/options.js"
|
||||
import { ICommand } from "~/interfaces"
|
||||
import { getHeadURL, getIGN } from "~/utils/Hypixel.js"
|
||||
@@ -26,9 +27,7 @@ export default {
|
||||
await interaction.deferReply()
|
||||
|
||||
const user = interaction.options.getUser("user")!
|
||||
const verifiedUser = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
const verifiedUser = await getVerify({ userID: user.id })
|
||||
if (!verifiedUser) {
|
||||
interaction.editReply({
|
||||
embeds: [{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getGuildApp } from "src/drizzle/functions"
|
||||
import { devMessage, embedColor } from "~/config/options.js"
|
||||
import { bwfkdr, bwstars, bwwins, duelswins, duelswlr, swkdr, swstars } from "~/config/reqs.js"
|
||||
import { IButton } from "~/interfaces"
|
||||
@@ -14,9 +15,7 @@ export default {
|
||||
const message = interaction.message
|
||||
const embed = message.embeds[0]
|
||||
const applicantId = embed.footer!.text.split(" ")[1]
|
||||
const guildappdata = await db.query.guildApps.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, applicantId)
|
||||
})
|
||||
const guildappdata = await getGuildApp({ userID: applicantId })
|
||||
const uuid = guildappdata!.uuid
|
||||
|
||||
const player = await getPlayer(uuid)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, TextChannel } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getGuildApp, removeVerify } from "src/drizzle/functions"
|
||||
import { addWaitingList, getWaitingLists, removeWaitingList } from "src/drizzle/functions"
|
||||
import { guildApps, waitingLists } from "src/drizzle/schema.js"
|
||||
import { embedColor, hypixelGuildID, waitingListChannel, waitingListMessage } from "~/config/options.js"
|
||||
import { waitingListRole } from "~/config/roles.js"
|
||||
@@ -54,20 +56,18 @@ export default {
|
||||
}]
|
||||
})
|
||||
|
||||
const applicantEntry = await db.query.guildApps.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, applicantId)
|
||||
})
|
||||
const applicantEntry = await getGuildApp({ userID: applicantId })
|
||||
const applicantUUID = applicantEntry!.uuid
|
||||
const time = Date.now()
|
||||
|
||||
await db.insert(waitingLists).values({
|
||||
await addWaitingList({
|
||||
userID: applicantId,
|
||||
uuid: applicantUUID,
|
||||
timestamp: time
|
||||
})
|
||||
|
||||
await applicant.roles.add(waitingListRole)
|
||||
await db.delete(guildApps).where(eq(guildApps.userID, applicantId))
|
||||
await removeVerify({ userID: applicantId })
|
||||
|
||||
await interaction.editReply({
|
||||
embeds: [{
|
||||
@@ -90,14 +90,14 @@ export default {
|
||||
const wlmessage = await channel!.messages.fetch(waitingListMessage)
|
||||
|
||||
const wlembed = wlmessage.embeds[0]
|
||||
const accepted = await db.query.waitingLists.findMany()
|
||||
const accepted = await getWaitingLists()
|
||||
|
||||
for (let i = 0; i < accepted.length; i++) {
|
||||
const uuid = accepted[i].uuid
|
||||
const guild = await getGuild(uuid)
|
||||
|
||||
if (guild && guild._id === hypixelGuildID) {
|
||||
await db.delete(waitingLists).where(eq(waitingLists.uuid, uuid))
|
||||
await removeWaitingList({ uuid })
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { addGuildApp, getGuildApp } from "src/drizzle/functions"
|
||||
import { guildApps } from "src/drizzle/schema.js"
|
||||
import { ignM, largeM, smallM } from "~/config/limitmessages.js"
|
||||
import { applicationsChannel, embedColor } from "~/config/options.js"
|
||||
@@ -31,9 +32,7 @@ export default {
|
||||
return
|
||||
}
|
||||
|
||||
const application = await db.query.guildApps.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
const application = await getGuildApp({ userID: user.user.id })
|
||||
|
||||
if (application) {
|
||||
await interaction.editReply("You already have an application in progress.")
|
||||
@@ -251,7 +250,7 @@ export default {
|
||||
}]
|
||||
})
|
||||
|
||||
await db.insert(guildApps).values({
|
||||
await addGuildApp({
|
||||
userID: user.user.id,
|
||||
uuid: uuid
|
||||
})
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { ActionRowBuilder, ButtonBuilder, ButtonStyle } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { removeStaffApp } from "src/drizzle/functions"
|
||||
import { staffApps } from "src/drizzle/schema.js"
|
||||
import { embedColor } from "~/config/options.js"
|
||||
import { IButton } from "~/interfaces"
|
||||
@@ -45,7 +46,7 @@ export default {
|
||||
]
|
||||
})
|
||||
|
||||
await db.delete(staffApps).where(eq(staffApps.userID, applicantId))
|
||||
await removeStaffApp({ userID: applicantId })
|
||||
|
||||
await interaction.editReply({
|
||||
embeds: [{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { addStaffApp, getSetting, getStaffApp } from "src/drizzle/functions"
|
||||
import { staffApps } from "src/drizzle/schema.js"
|
||||
import { ignM, largeM } from "~/config/limitmessages.js"
|
||||
import { embedColor, staffApplicationsChannel } from "~/config/options.js"
|
||||
@@ -17,9 +18,7 @@ export default {
|
||||
const user = interaction.member as GuildMember
|
||||
const guild = interaction.guild!
|
||||
const userRoles = user.roles.cache
|
||||
const setting = await db.query.settings.findFirst({
|
||||
where: ({ name }, { eq }) => eq(name, "staffApplications")
|
||||
})
|
||||
const setting = await getSetting({ name: "staffapplications" })
|
||||
const status = setting?.value || "0"
|
||||
|
||||
function sq(n: number): string {
|
||||
@@ -50,9 +49,7 @@ export default {
|
||||
return
|
||||
}
|
||||
|
||||
const application = await db.query.staffApps.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.user.id)
|
||||
})
|
||||
const application = await getStaffApp({ userID: user.user.id })
|
||||
|
||||
if (application) {
|
||||
await interaction.editReply("You already have an application in progress.")
|
||||
@@ -225,7 +222,7 @@ export default {
|
||||
}]
|
||||
})
|
||||
|
||||
await db.insert(staffApps).values({
|
||||
await addStaffApp({
|
||||
userID: user.user.id,
|
||||
uuid: uuid
|
||||
})
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { eq } from "drizzle-orm"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { getWaitingLists, removeWaitingList } from "src/drizzle/functions"
|
||||
import { waitingLists } from "src/drizzle/schema.js"
|
||||
import { hypixelGuildID } from "~/config/options.js"
|
||||
import { IButton } from "~/interfaces"
|
||||
@@ -15,14 +16,14 @@ export default {
|
||||
const user = interaction.user
|
||||
const message = interaction.message
|
||||
const embed = message.embeds[0]
|
||||
const accepted = await db.query.waitingLists.findMany()
|
||||
const accepted = await getWaitingLists()
|
||||
|
||||
for (let i = 0; i < accepted.length; i++) {
|
||||
const uuid = accepted[i].uuid
|
||||
const guild = await getGuild(uuid)
|
||||
|
||||
if (guild && guild._id === hypixelGuildID) {
|
||||
await db.delete(waitingLists).where(eq(waitingLists.uuid, uuid))
|
||||
await removeWaitingList({ uuid })
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, GuildMember, Message } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { removeGuildApp } from "src/drizzle/functions"
|
||||
import { guildApps } from "src/drizzle/schema.js"
|
||||
import { embedColor } from "~/config/options.js"
|
||||
import { IModal } from "~/interfaces"
|
||||
@@ -83,7 +84,7 @@ export default {
|
||||
responseEmbeds = [responseEmbed]
|
||||
}
|
||||
|
||||
await db.delete(guildApps).where(eq(guildApps.userID, applicantId))
|
||||
await removeGuildApp({ userID: applicantId })
|
||||
|
||||
await interaction.editReply({
|
||||
embeds: responseEmbeds
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } from "discord.js"
|
||||
import { eq } from "drizzle-orm"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { removeStaffApp } from "src/drizzle/functions"
|
||||
import { staffApps } from "src/drizzle/schema.js"
|
||||
import { embedColor } from "~/config/options.js"
|
||||
import { IModal } from "~/interfaces"
|
||||
@@ -45,7 +46,7 @@ export default {
|
||||
|
||||
await applicant.send({ embeds: [dmMessage] })
|
||||
|
||||
await db.delete(staffApps).where(eq(staffApps.userID, applicantId))
|
||||
await removeStaffApp({ userID: applicantId })
|
||||
|
||||
await interaction.editReply({
|
||||
embeds: [{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GuildMember } from "discord.js"
|
||||
import db from "src/drizzle/db.js"
|
||||
import { addVerify, getVerify } from "src/drizzle/functions"
|
||||
import { verifies } from "src/drizzle/schema.js"
|
||||
import { devMessage, embedColor, hypixelGuildID } from "~/config/options.js"
|
||||
import { IModal } from "~/interfaces"
|
||||
@@ -15,9 +16,7 @@ export default {
|
||||
|
||||
const user = interaction.member as GuildMember
|
||||
const ign = interaction.fields.fields.get("verifyign")!.value
|
||||
const verifyData = await db.query.verifies.findFirst({
|
||||
where: ({ userID }, { eq }) => eq(userID, user.id)
|
||||
})
|
||||
const verifyData = await getVerify({ userID: user.id })
|
||||
if (verifyData) {
|
||||
interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.")
|
||||
return
|
||||
@@ -147,7 +146,7 @@ export default {
|
||||
// Do nothing
|
||||
})
|
||||
|
||||
await db.insert(verifies).values({
|
||||
await addVerify({
|
||||
userID: user.id,
|
||||
uuid: uuid
|
||||
})
|
||||
|
||||
5
src/drizzle/functions.ts
Normal file
5
src/drizzle/functions.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export * from "./functions/guildApps.js"
|
||||
export * from "./functions/settings.js"
|
||||
export * from "./functions/staffApps.js"
|
||||
export * from "./functions/verifies.js"
|
||||
export * from "./functions/waitingList.js"
|
||||
32
src/drizzle/functions/guildApps.ts
Normal file
32
src/drizzle/functions/guildApps.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { eq, or } from "drizzle-orm"
|
||||
import db from "../db.js"
|
||||
import { guildApps, InsertGuildApp } from "../schema.js"
|
||||
|
||||
type GuildAppDBData = Partial<Pick<InsertGuildApp, "userID" | "uuid">>
|
||||
|
||||
export async function addGuildApp(data: InsertGuildApp) {
|
||||
await db.insert(guildApps).values(data)
|
||||
}
|
||||
|
||||
export async function getGuildApp(data: GuildAppDBData) {
|
||||
const userId = data.userID ?? ""
|
||||
const uuid = data.uuid ?? ""
|
||||
|
||||
return await db.query.guildApps.findFirst({
|
||||
where: (({ userID: dbUserId, uuid: dbUuid }, { eq, or }) =>
|
||||
or(
|
||||
eq(dbUuid, uuid),
|
||||
eq(dbUserId, userId)
|
||||
))
|
||||
})
|
||||
}
|
||||
|
||||
export async function removeGuildApp(data: GuildAppDBData) {
|
||||
const userId = data.userID ?? ""
|
||||
const uuid = data.uuid ?? ""
|
||||
|
||||
await db.delete(guildApps).where(or(
|
||||
eq(guildApps.userID, userId),
|
||||
eq(guildApps.uuid, uuid)
|
||||
))
|
||||
}
|
||||
41
src/drizzle/functions/settings.ts
Normal file
41
src/drizzle/functions/settings.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { eq, or } from "drizzle-orm"
|
||||
import db from "../db.js"
|
||||
import { InsertSetting, settings } from "../schema.js"
|
||||
|
||||
type SettingsDBData = Partial<Pick<InsertSetting, "name" | "value">>
|
||||
|
||||
export async function addSetting(data: InsertSetting) {
|
||||
await db.insert(settings).values(data)
|
||||
}
|
||||
|
||||
export async function getSetting(data: SettingsDBData) {
|
||||
const name = data.name ?? ""
|
||||
const value = data.value ?? ""
|
||||
|
||||
return await db.query.settings.findFirst({
|
||||
where: (({ name: dbName, value: dbValue }, { eq, or }) =>
|
||||
or(
|
||||
eq(dbName, name),
|
||||
eq(dbValue, value)
|
||||
))
|
||||
})
|
||||
}
|
||||
|
||||
export async function updateSetting(data: SettingsDBData) {
|
||||
const name = data.name ?? ""
|
||||
const value = data.value
|
||||
|
||||
await db.update(settings).set({
|
||||
value: value
|
||||
}).where(eq(settings.name, name))
|
||||
}
|
||||
|
||||
export async function removeSetting(data: SettingsDBData) {
|
||||
const name = data.name ?? ""
|
||||
const value = data.value ?? ""
|
||||
|
||||
await db.delete(settings).where(or(
|
||||
eq(settings.name, name),
|
||||
eq(settings.value, value)
|
||||
))
|
||||
}
|
||||
32
src/drizzle/functions/staffApps.ts
Normal file
32
src/drizzle/functions/staffApps.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { eq, or } from "drizzle-orm"
|
||||
import db from "../db.js"
|
||||
import { InsertStaffApp, staffApps } from "../schema.js"
|
||||
|
||||
type StaffAppDBData = Partial<Pick<InsertStaffApp, "userID" | "uuid">>
|
||||
|
||||
export async function addStaffApp(data: InsertStaffApp) {
|
||||
await db.insert(staffApps).values(data)
|
||||
}
|
||||
|
||||
export async function getStaffApp(data: StaffAppDBData) {
|
||||
const userId = data.userID ?? ""
|
||||
const uuid = data.uuid ?? ""
|
||||
|
||||
return await db.query.staffApps.findFirst({
|
||||
where: (({ userID: dbUserId, uuid: dbUuid }, { eq, or }) =>
|
||||
or(
|
||||
eq(dbUuid, uuid),
|
||||
eq(dbUserId, userId)
|
||||
))
|
||||
})
|
||||
}
|
||||
|
||||
export async function removeStaffApp(data: StaffAppDBData) {
|
||||
const userId = data.userID ?? ""
|
||||
const uuid = data.uuid ?? ""
|
||||
|
||||
await db.delete(staffApps).where(or(
|
||||
eq(staffApps.userID, userId),
|
||||
eq(staffApps.uuid, uuid)
|
||||
))
|
||||
}
|
||||
36
src/drizzle/functions/verifies.ts
Normal file
36
src/drizzle/functions/verifies.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { eq, or } from "drizzle-orm"
|
||||
import db from "../db.js"
|
||||
import { InsertVerify, verifies } from "../schema.js"
|
||||
|
||||
type VerifyDBData = Partial<Pick<InsertVerify, "userID" | "uuid">>
|
||||
|
||||
export async function addVerify(data: InsertVerify) {
|
||||
await db.insert(verifies).values(data)
|
||||
}
|
||||
|
||||
export async function getVerify(data: VerifyDBData) {
|
||||
const userId = data.userID ?? ""
|
||||
const uuid = data.uuid ?? ""
|
||||
|
||||
return await db.query.verifies.findFirst({
|
||||
where: (({ userID: dbUserId, uuid: dbUuid }, { eq, or }) =>
|
||||
or(
|
||||
eq(dbUuid, uuid),
|
||||
eq(dbUserId, userId)
|
||||
))
|
||||
})
|
||||
}
|
||||
|
||||
export async function getVerifies() {
|
||||
return await db.query.verifies.findMany()
|
||||
}
|
||||
|
||||
export async function removeVerify(data: VerifyDBData) {
|
||||
const userId = data.userID ?? ""
|
||||
const uuid = data.uuid ?? ""
|
||||
|
||||
await db.delete(verifies).where(or(
|
||||
eq(verifies.userID, userId),
|
||||
eq(verifies.uuid, uuid)
|
||||
))
|
||||
}
|
||||
36
src/drizzle/functions/waitingList.ts
Normal file
36
src/drizzle/functions/waitingList.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { eq, or } from "drizzle-orm"
|
||||
import db from "../db.js"
|
||||
import { InsertWaitingList, waitingLists } from "../schema.js"
|
||||
|
||||
type WaitingListDBData = Partial<Pick<InsertWaitingList, "userID" | "uuid">>
|
||||
|
||||
export async function addWaitingList(data: InsertWaitingList) {
|
||||
await db.insert(waitingLists).values(data)
|
||||
}
|
||||
|
||||
export async function getWaitingList(data: WaitingListDBData) {
|
||||
const userId = data.userID ?? ""
|
||||
const uuid = data.uuid ?? ""
|
||||
|
||||
return await db.query.waitingLists.findFirst({
|
||||
where: (({ userID: dbUserId, uuid: dbUuid }, { eq, or }) =>
|
||||
or(
|
||||
eq(dbUuid, uuid),
|
||||
eq(dbUserId, userId)
|
||||
))
|
||||
})
|
||||
}
|
||||
|
||||
export async function getWaitingLists() {
|
||||
return await db.query.waitingLists.findMany()
|
||||
}
|
||||
|
||||
export async function removeWaitingList(data: WaitingListDBData) {
|
||||
const userId = data.userID ?? ""
|
||||
const uuid = data.uuid ?? ""
|
||||
|
||||
await db.delete(waitingLists).where(or(
|
||||
eq(waitingLists.userID, userId),
|
||||
eq(waitingLists.uuid, uuid)
|
||||
))
|
||||
}
|
||||
Reference in New Issue
Block a user