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

View File

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

View File

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

View File

@@ -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(() => {

View File

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

View File

@@ -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", {

View File

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

View File

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

View File

@@ -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(() => {

View File

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

View File

@@ -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({

View File

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