Moved from sequlize to drizzleorm

This commit is contained in:
2024-10-02 23:37:09 +02:00
parent 20e6e2e86d
commit 0890712b1b
37 changed files with 1110 additions and 247 deletions

View File

@@ -1,7 +1,9 @@
import { devMessage, embedColor } from "config/options.js"
import { bwfkdr, bwstars, bwwins, duelswins, duelswlr, swkdr, swstars } from "config/reqs.js"
import { eq } from "drizzle-orm"
import { IButton } from "interfaces"
import guildapp from "schemas/guildAppTag.js"
import db from "src/db/db.js"
import { guildApps } from "src/db/schema.js"
import { bedwarsLevel, getGuild, getHeadURL, getPlayer, hypixelLevel, skywarsLevel } from "utils/Hypixel.js"
export default {
@@ -14,7 +16,9 @@ export default {
const message = interaction.message
const embed = message.embeds[0]
const applicantId = embed.footer!.text.split(" ")[1]
const guildappdata = await guildapp.findOne({ where: { userID: applicantId } })
const guildappdata = await db.query.guildApps.findFirst({
where: eq(guildApps.userID, applicantId)
})
const uuid = guildappdata!.uuid
const player = await getPlayer(uuid)

View File

@@ -1,9 +1,10 @@
import { embedColor, hypixelGuildID, waitingListChannel, waitingListMessage } from "config/options.js"
import { waitingListRole } from "config/roles.js"
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, TextChannel } from "discord.js"
import { eq } from "drizzle-orm"
import { IButton } from "interfaces"
import guildapp from "schemas/guildAppTag.js"
import waitingList from "schemas/waitinglistTag.js"
import db from "src/db/db.js"
import { guildApps, waitingLists } from "src/db/schema.js"
import { color } from "utils/functions/colors.js"
import { getGuild, getIGN } from "utils/Hypixel.js"
@@ -53,18 +54,20 @@ export default {
}]
})
const applicantEntry = await guildapp.findOne({ where: { userID: applicantId } })
const applicantEntry = await db.query.guildApps.findFirst({
where: eq(guildApps.userID, applicantId)
})
const applicantUUID = applicantEntry!.uuid
const time = Date.now()
await waitingList.create({
await db.insert(waitingLists).values({
userID: applicantId,
uuid: applicantUUID,
timestamp: time
})
await applicant.roles.add(waitingListRole)
await applicantEntry?.destroy()
await db.delete(guildApps).where(eq(guildApps.userID, applicantId))
await interaction.editReply({
embeds: [{
@@ -87,14 +90,14 @@ export default {
const wlmessage = await channel!.messages.fetch(waitingListMessage)
const wlembed = wlmessage.embeds[0]
const accepted = await waitingList.findAll()
const accepted = await db.query.waitingLists.findMany()
for (let i = 0; i < accepted.length; i++) {
const uuid = accepted[i].uuid
const guild = await getGuild(uuid)
if (guild && guild._id === hypixelGuildID) {
await waitingList.destroy({ where: { uuid: uuid } })
await db.delete(waitingLists).where(eq(waitingLists.uuid, uuid))
continue
}
}

View File

@@ -3,8 +3,10 @@ import { applicationsChannel, embedColor } from "config/options.js"
import { guild as guildQuestions } from "config/questions.js"
import { guildRole } from "config/roles.js"
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
import { eq } from "drizzle-orm"
import { IButton } from "interfaces"
import guildapp from "schemas/guildAppTag.js"
import db from "src/db/db.js"
import { guildApps } from "src/db/schema.js"
import applicationQuestions from "utils/functions/applicationquestions.js"
export default {
@@ -30,7 +32,9 @@ export default {
return
}
const application = await guildapp.findOne({ where: { userID: user.user.id } })
const application = await db.query.guildApps.findFirst({
where: eq(guildApps.userID, user.user.id)
})
if (application) {
await interaction.editReply("You already have an application in progress.")
@@ -248,7 +252,7 @@ export default {
}]
})
await guildapp.create({
await db.insert(guildApps).values({
userID: user.user.id,
uuid: uuid
})

View File

@@ -1,7 +1,9 @@
import { embedColor } from "config/options.js"
import { ActionRowBuilder, ButtonBuilder, ButtonStyle } from "discord.js"
import { eq } from "drizzle-orm"
import { IButton } from "interfaces"
import staffapp from "schemas/staffAppTag.js"
import db from "src/db/db.js"
import { staffApps } from "src/db/schema.js"
export default {
name: "staffapplicationaccept",
@@ -43,8 +45,7 @@ export default {
]
})
const app = await staffapp.findOne({ where: { userID: applicantId } })
await app?.destroy()
await db.delete(staffApps).where(eq(staffApps.userID, applicantId))
await interaction.editReply({
embeds: [{

View File

@@ -3,9 +3,10 @@ import { embedColor, staffApplicationsChannel } from "config/options.js"
import { staff as staffQuestions } from "config/questions.js"
import { guildRole, guildStaff } from "config/roles.js"
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, GuildMember, TextChannel } from "discord.js"
import { eq } from "drizzle-orm"
import { IButton } from "interfaces"
import settings from "schemas/settingsTag.js"
import staffapp from "schemas/staffAppTag.js"
import db from "src/db/db.js"
import { settings, staffApps } from "src/db/schema.js"
import env from "utils/Env.js"
import applicationQuestions from "utils/functions/applicationquestions.js"
@@ -17,7 +18,9 @@ export default {
const user = interaction.member as GuildMember
const guild = interaction.guild!
const userRoles = user.roles.cache
const setting = await settings.findOne({ where: { name: "staffAppStatus" } })
const setting = await db.query.settings.findFirst({
where: eq(settings.name, "staffApplications")
})
const status = setting?.value || "0"
function sq(n: number): string {
@@ -48,7 +51,9 @@ export default {
return
}
const application = await staffapp.findOne({ where: { userID: user.user.id } })
const application = await db.query.staffApps.findFirst({
where: eq(staffApps.userID, user.user.id)
})
if (application) {
await interaction.editReply("You already have an application in progress.")
@@ -221,7 +226,7 @@ export default {
}]
})
await staffapp.create({
await db.insert(staffApps).values({
userID: user.user.id,
uuid: uuid
})

View File

@@ -1,6 +1,8 @@
import { hypixelGuildID } from "config/options.js"
import { eq } from "drizzle-orm"
import { IButton } from "interfaces"
import waitinglist from "schemas/waitinglistTag.js"
import db from "src/db/db.js"
import { waitingLists } from "src/db/schema.js"
import { getGuild, getIGN } from "utils/Hypixel.js"
export default {
@@ -13,14 +15,14 @@ export default {
const user = interaction.user
const message = interaction.message
const embed = message.embeds[0]
const accepted = await waitinglist.findAll()
const accepted = await db.query.waitingLists.findMany()
for (let i = 0; i < accepted.length; i++) {
const uuid = accepted[i].uuid
const guild = await getGuild(uuid)
if (guild && guild._id === hypixelGuildID) {
await accepted[i].destroy()
await db.delete(waitingLists).where(eq(waitingLists.uuid, uuid))
continue
}
}

View File

@@ -1,7 +1,9 @@
import { embedColor } from "config/options.js"
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, GuildMember, Message } from "discord.js"
import { eq } from "drizzle-orm"
import { IModal } from "interfaces"
import guildapp from "schemas/guildAppTag.js"
import db from "src/db/db.js"
import { guildApps } from "src/db/schema.js"
export default {
name: "denyreasonbox",
@@ -81,8 +83,7 @@ export default {
responseEmbeds = [responseEmbed]
}
const app = await guildapp.findOne({ where: { userID: applicantId } })
await app?.destroy()
await db.delete(guildApps).where(eq(guildApps.userID, applicantId))
await interaction.editReply({
embeds: responseEmbeds

View File

@@ -1,7 +1,9 @@
import { embedColor } from "config/options.js"
import { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } from "discord.js"
import { eq } from "drizzle-orm"
import { IModal } from "interfaces"
import staffapp from "schemas/staffAppTag.js"
import db from "src/db/db.js"
import { staffApps } from "src/db/schema.js"
export default {
name: "staffdenyreasonbox",
@@ -43,8 +45,7 @@ export default {
await applicant.send({ embeds: [dmMessage] })
const app = await staffapp.findOne({ where: { userID: applicantId } })
await app?.destroy()
await db.delete(staffApps).where(eq(staffApps.userID, applicantId))
await interaction.editReply({
embeds: [{

View File

@@ -1,7 +1,9 @@
import { devMessage, embedColor, hypixelGuildID } from "config/options.js"
import { GuildMember } from "discord.js"
import { eq } from "drizzle-orm"
import { IModal } from "interfaces"
import verify from "schemas/verifyTag.js"
import db from "src/db/db.js"
import { verifies } from "src/db/schema.js"
import roleManage from "utils/functions/rolesmanage.js"
import { getGuild, getHeadURL, getPlayer, getUUID } from "utils/Hypixel.js"
@@ -14,7 +16,9 @@ export default {
const user = interaction.member as GuildMember
const ign = interaction.fields.fields.get("verifyign")!.value
const verifyData = await verify.findOne({ where: { userID: user.user.id } })
const verifyData = await db.query.verifies.findFirst({
where: eq(verifies.userID, user.user.id)
})
if (verifyData) {
interaction.editReply("You are already verified.\n" + "Try running /update to update your roles.")
return
@@ -149,7 +153,7 @@ export default {
// Do nothing
})
await verify.create({
await db.insert(verifies).values({
userID: user.id,
uuid: uuid
})