aboutsummaryrefslogtreecommitdiff
path: root/api/src/modules/settings/settings.repository.ts
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/modules/settings/settings.repository.ts')
-rw-r--r--api/src/modules/settings/settings.repository.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/api/src/modules/settings/settings.repository.ts b/api/src/modules/settings/settings.repository.ts
new file mode 100644
index 0000000..a3d38ba
--- /dev/null
+++ b/api/src/modules/settings/settings.repository.ts
@@ -0,0 +1,26 @@
+import type { Database } from '@/db/connection.js';
+import { systemSettings } from '@/db/schema.js';
+
+export async function getSettings(db: Database) {
+ let [settings] = await db.select().from(systemSettings).limit(1);
+
+ if (!settings) {
+ [settings] = await db.insert(systemSettings).values({ allowRequesterChat: true }).returning();
+ }
+
+ return settings;
+}
+
+export async function updateSettings(db: Database, data: { allowRequesterChat: boolean }) {
+ let [settings] = await db.select().from(systemSettings).limit(1);
+
+ if (!settings) {
+ [settings] = await db.insert(systemSettings).values(data).returning();
+ } else {
+ [settings] = await db.update(systemSettings)
+ .set({ allowRequesterChat: data.allowRequesterChat, updatedAt: new Date().toISOString() })
+ .returning();
+ }
+
+ return settings;
+}