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

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