make settings keys unique
All checks were successful
deploy / build-and-deploy (/testvaro, /opt/website-test, website-test) (push) Successful in 13s
deploy / build-and-deploy (/varo, /opt/website, website) (push) Successful in 13s

This commit is contained in:
2025-06-19 19:23:39 +02:00
parent 17f32d6d91
commit 28951534ee
2 changed files with 12 additions and 2 deletions

View File

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

View File

@ -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<string | null> {