From 28951534ee6b17d2281f2e06fe21c5bc1537e331 Mon Sep 17 00:00:00 2001 From: bytedream Date: Thu, 19 Jun 2025 19:23:39 +0200 Subject: [PATCH] make settings keys unique --- src/db/database.sql | 2 +- src/db/schema/settings.ts | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/db/database.sql b/src/db/database.sql index fab0f60..51f799c 100644 --- a/src/db/database.sql +++ b/src/db/database.sql @@ -122,6 +122,6 @@ CREATE TABLE IF NOT EXISTS feedback ( -- settings CREATE TABLE IF NOT EXISTS settings ( - name VARCHAR(255) NOT NULL, + name VARCHAR(255) UNIQUE NOT NULL, value TEXT NOT NULL ); diff --git a/src/db/schema/settings.ts b/src/db/schema/settings.ts index 84da0ef..7d66076 100644 --- a/src/db/schema/settings.ts +++ b/src/db/schema/settings.ts @@ -32,7 +32,17 @@ export async function getSettings(db: Database, values: GetSettingsReq) { } export async function setSettings(db: Database, values: SetSettingsReq) { - await db.insert(settings).values(values.settings); + return db.transaction(async (tx) => { + for (const setting of values.settings) { + tx.insert(settings) + .values(setting) + .onDuplicateKeyUpdate({ + set: { + value: setting.value + } + }); + } + }); } export async function getSetting(db: Database, values: GetSettingReq): Promise {