Files
anbar/src/app/api/settings/route.js
T

46 lines
1.4 KiB
JavaScript

import prisma from '@/lib/prisma';
import { NextResponse } from 'next/server';
export async function GET() {
try {
const settings = await prisma.systemSetting.findMany();
const settingsMap = settings.reduce((acc, setting) => {
acc[setting.key] = JSON.parse(setting.value);
return acc;
}, {});
// Default settings if not exists
if (settingsMap['blind_counting'] === undefined) {
settingsMap['blind_counting'] = false;
}
if (settingsMap['correction_roles'] === undefined) {
settingsMap['correction_roles'] = ['ADMIN', 'SUPERVISOR'];
}
return NextResponse.json(settingsMap);
} catch (error) {
console.error('Settings error:', error);
return NextResponse.json({ error: 'خطا در دریافت تنظیمات' }, { status: 500 });
}
}
export async function POST(req) {
try {
const data = await req.json();
// Process each key-value pair
for (const [key, value] of Object.entries(data)) {
await prisma.systemSetting.upsert({
where: { key },
update: { value: JSON.stringify(value) },
create: { key, value: JSON.stringify(value) },
});
}
return NextResponse.json({ message: 'تنظیمات با موفقیت ذخیره شد' });
} catch (error) {
console.error('Settings save error:', error);
return NextResponse.json({ error: 'خطا در ذخیره تنظیمات' }, { status: 500 });
}
}