aboutsummaryrefslogtreecommitdiff
path: root/api/src/modules/settings/settings.repository.ts
blob: a3d38badba2701a27926ea18f48ba6f1cd78aa2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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;
}