27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
// server/api/config/screen.post.ts
|
|
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const body = await readBody(event);
|
|
const { namaScreen, nomorScreen, klinik = [] } = body;
|
|
|
|
if (!namaScreen || !nomorScreen) {
|
|
throw createError({ statusCode: 400, message: 'namaScreen dan nomorScreen wajib diisi' });
|
|
}
|
|
|
|
const db = getConfigDb();
|
|
try {
|
|
const result = db.prepare(
|
|
`INSERT INTO config_screen (namaScreen, nomorScreen, klinik) VALUES (?, ?, ?)`
|
|
).run(namaScreen, nomorScreen, JSON.stringify(klinik));
|
|
|
|
const newRow = db.prepare('SELECT * FROM config_screen WHERE id = ?').get(result.lastInsertRowid);
|
|
return { success: true, data: parseConfigRow(newRow), message: `Screen ${namaScreen} berhasil ditambahkan` };
|
|
} catch (e: any) {
|
|
if (e.message?.includes('UNIQUE')) {
|
|
throw createError({ statusCode: 409, message: `nomorScreen "${nomorScreen}" sudah digunakan` });
|
|
}
|
|
throw createError({ statusCode: 500, message: e.message });
|
|
}
|
|
});
|