Files
BYW-VoiceHub/server/api/site-config.get.ts
T

41 lines
1.1 KiB
TypeScript

import { db } from '~/drizzle/db'
import { systemSettings } from '~/drizzle/schema'
import { SYSTEM_SETTINGS_DEFAULTS, filterPublicSettings } from '../utils/system-settings-defaults'
import { getInstanceId } from '../utils/instance-id'
export default defineEventHandler(async (event) => {
try {
const settingsResult = await db.select().from(systemSettings).limit(1)
let settings = settingsResult[0] || null
if (!settings) {
const newSettings = await db
.insert(systemSettings)
.values(SYSTEM_SETTINGS_DEFAULTS)
.returning()
settings = newSettings[0] || null
}
if (!settings) {
throw new Error('系统设置初始化失败')
}
// Ensure instance ID is set after defaults are applied and merge into settings
const instanceId = await getInstanceId()
if (instanceId && settings) {
settings.instanceId = instanceId
}
const publicSettings = filterPublicSettings(settings)
return publicSettings
} catch (error) {
console.error('获取系统设置失败:', error)
throw createError({
statusCode: 500,
message: '获取系统设置失败'
})
}
})