Moved all db logic to db functions

This commit is contained in:
2024-10-25 19:52:34 +02:00
parent d206703098
commit f2aa84f8a5
28 changed files with 244 additions and 73 deletions

View File

@@ -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)

View File

@@ -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
}
}

View File

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

View File

@@ -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: [{

View File

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

View File

@@ -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
}
}