push perbaikan

This commit is contained in:
Fanrouver
2026-05-25 08:43:30 +07:00
parent ec9dac0789
commit ffdb88d13c
43 changed files with 945 additions and 566 deletions

No files matched your search

+8
View File
@@ -0,0 +1,8 @@
// server/api/config/anjungan.get.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(() => {
const db = getConfigDb();
const rows = db.prepare('SELECT * FROM config_anjungan ORDER BY id ASC').all();
return { success: true, data: rows.map(parseConfigRow) };
});
+19
View File
@@ -0,0 +1,19 @@
// server/api/config/anjungan.post.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(async (event) => {
const body = await readBody(event);
const { namaAnjungan, jenisPasien, klinik = [] } = body;
if (!namaAnjungan || !jenisPasien) {
throw createError({ statusCode: 400, message: 'namaAnjungan dan jenisPasien wajib diisi' });
}
const db = getConfigDb();
const result = db.prepare(
`INSERT INTO config_anjungan (namaAnjungan, jenisPasien, klinik) VALUES (?, ?, ?)`
).run(namaAnjungan, jenisPasien, JSON.stringify(klinik));
const newRow = db.prepare('SELECT * FROM config_anjungan WHERE id = ?').get(result.lastInsertRowid);
return { success: true, data: parseConfigRow(newRow), message: `Anjungan ${namaAnjungan} berhasil ditambahkan` };
});
+14
View File
@@ -0,0 +1,14 @@
// server/api/config/anjungan/[id].delete.ts
import { getConfigDb } from '~/server/utils/configDb';
export default defineEventHandler((event) => {
const id = Number(getRouterParam(event, 'id'));
if (!id) throw createError({ statusCode: 400, message: 'ID tidak valid' });
const db = getConfigDb();
const existing = db.prepare('SELECT * FROM config_anjungan WHERE id = ?').get(id) as any;
if (!existing) throw createError({ statusCode: 404, message: 'Anjungan tidak ditemukan' });
db.prepare('DELETE FROM config_anjungan WHERE id = ?').run(id);
return { success: true, message: `Anjungan ${existing.namaAnjungan} berhasil dihapus` };
});
+31
View File
@@ -0,0 +1,31 @@
// server/api/config/anjungan/[id].put.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(async (event) => {
const id = Number(getRouterParam(event, 'id'));
if (!id) throw createError({ statusCode: 400, message: 'ID tidak valid' });
const body = await readBody(event);
const { namaAnjungan, jenisPasien, klinik } = body;
const db = getConfigDb();
const existing = db.prepare('SELECT * FROM config_anjungan WHERE id = ?').get(id) as any;
if (!existing) throw createError({ statusCode: 404, message: 'Anjungan tidak ditemukan' });
db.prepare(
`UPDATE config_anjungan SET
namaAnjungan = ?,
jenisPasien = ?,
klinik = ?,
updatedAt = strftime('%s', 'now')
WHERE id = ?`
).run(
namaAnjungan ?? existing.namaAnjungan,
jenisPasien ?? existing.jenisPasien,
klinik !== undefined ? JSON.stringify(klinik) : existing.klinik,
id
);
const updated = db.prepare('SELECT * FROM config_anjungan WHERE id = ?').get(id);
return { success: true, data: parseConfigRow(updated), message: 'Anjungan berhasil diperbarui' };
});
@@ -0,0 +1,8 @@
// server/api/config/antrean-masuk-screen.get.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(() => {
const db = getConfigDb();
const rows = db.prepare('SELECT * FROM config_antrean_masuk_screen ORDER BY id ASC').all();
return { success: true, data: rows.map(parseConfigRow) };
});
@@ -0,0 +1,26 @@
// server/api/config/antrean-masuk-screen.post.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(async (event) => {
const body = await readBody(event);
const { namaScreen, nomorScreen, loket = [] } = 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_antrean_masuk_screen (namaScreen, nomorScreen, loket) VALUES (?, ?, ?)`
).run(namaScreen, nomorScreen, JSON.stringify(loket));
const newRow = db.prepare('SELECT * FROM config_antrean_masuk_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 });
}
});
@@ -0,0 +1,14 @@
// server/api/config/antrean-masuk-screen/[id].delete.ts
import { getConfigDb } from '~/server/utils/configDb';
export default defineEventHandler((event) => {
const id = Number(getRouterParam(event, 'id'));
if (!id) throw createError({ statusCode: 400, message: 'ID tidak valid' });
const db = getConfigDb();
const existing = db.prepare('SELECT * FROM config_antrean_masuk_screen WHERE id = ?').get(id) as any;
if (!existing) throw createError({ statusCode: 404, message: 'Screen tidak ditemukan' });
db.prepare('DELETE FROM config_antrean_masuk_screen WHERE id = ?').run(id);
return { success: true, message: `Screen ${existing.namaScreen} berhasil dihapus` };
});
@@ -0,0 +1,29 @@
// server/api/config/antrean-masuk-screen/[id].put.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(async (event) => {
const id = Number(getRouterParam(event, 'id'));
if (!id) throw createError({ statusCode: 400, message: 'ID tidak valid' });
const body = await readBody(event);
const { namaScreen, nomorScreen, loket } = body;
const db = getConfigDb();
const existing = db.prepare('SELECT * FROM config_antrean_masuk_screen WHERE id = ?').get(id) as any;
if (!existing) throw createError({ statusCode: 404, message: 'Screen tidak ditemukan' });
db.prepare(
`UPDATE config_antrean_masuk_screen SET
namaScreen = ?, nomorScreen = ?, loket = ?,
updatedAt = strftime('%s', 'now')
WHERE id = ?`
).run(
namaScreen ?? existing.namaScreen,
nomorScreen ?? existing.nomorScreen,
loket !== undefined ? JSON.stringify(loket) : existing.loket,
id
);
const updated = db.prepare('SELECT * FROM config_antrean_masuk_screen WHERE id = ?').get(id);
return { success: true, data: parseConfigRow(updated), message: 'Screen berhasil diperbarui' };
});
+8
View File
@@ -0,0 +1,8 @@
// server/api/config/klinik-ruang.get.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(() => {
const db = getConfigDb();
const rows = db.prepare('SELECT * FROM config_klinik_ruang ORDER BY id ASC').all();
return { success: true, data: rows.map(parseConfigRow) };
});
+19
View File
@@ -0,0 +1,19 @@
// server/api/config/klinik-ruang.post.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(async (event) => {
const body = await readBody(event);
const { kodeKlinik, namaKlinik, ruangList = [] } = body;
if (!kodeKlinik || !namaKlinik) {
throw createError({ statusCode: 400, message: 'kodeKlinik dan namaKlinik wajib diisi' });
}
const db = getConfigDb();
const result = db.prepare(
`INSERT INTO config_klinik_ruang (kodeKlinik, namaKlinik, ruangList) VALUES (?, ?, ?)`
).run(kodeKlinik, namaKlinik, JSON.stringify(ruangList));
const newRow = db.prepare('SELECT * FROM config_klinik_ruang WHERE id = ?').get(result.lastInsertRowid);
return { success: true, data: parseConfigRow(newRow), message: `Klinik Ruang ${namaKlinik} berhasil ditambahkan` };
});
@@ -0,0 +1,14 @@
// server/api/config/klinik-ruang/[id].delete.ts
import { getConfigDb } from '~/server/utils/configDb';
export default defineEventHandler((event) => {
const id = Number(getRouterParam(event, 'id'));
if (!id) throw createError({ statusCode: 400, message: 'ID tidak valid' });
const db = getConfigDb();
const existing = db.prepare('SELECT * FROM config_klinik_ruang WHERE id = ?').get(id) as any;
if (!existing) throw createError({ statusCode: 404, message: 'Klinik Ruang tidak ditemukan' });
db.prepare('DELETE FROM config_klinik_ruang WHERE id = ?').run(id);
return { success: true, message: `Klinik Ruang ${existing.namaKlinik} berhasil dihapus` };
});
@@ -0,0 +1,29 @@
// server/api/config/klinik-ruang/[id].put.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(async (event) => {
const id = Number(getRouterParam(event, 'id'));
if (!id) throw createError({ statusCode: 400, message: 'ID tidak valid' });
const body = await readBody(event);
const { kodeKlinik, namaKlinik, ruangList } = body;
const db = getConfigDb();
const existing = db.prepare('SELECT * FROM config_klinik_ruang WHERE id = ?').get(id) as any;
if (!existing) throw createError({ statusCode: 404, message: 'Klinik Ruang tidak ditemukan' });
db.prepare(
`UPDATE config_klinik_ruang SET
kodeKlinik = ?, namaKlinik = ?, ruangList = ?,
updatedAt = strftime('%s', 'now')
WHERE id = ?`
).run(
kodeKlinik ?? existing.kodeKlinik,
namaKlinik ?? existing.namaKlinik,
ruangList !== undefined ? JSON.stringify(ruangList) : existing.ruangList,
id
);
const updated = db.prepare('SELECT * FROM config_klinik_ruang WHERE id = ?').get(id);
return { success: true, data: parseConfigRow(updated), message: 'Klinik Ruang berhasil diperbarui' };
});
+8
View File
@@ -0,0 +1,8 @@
// server/api/config/screen.get.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(() => {
const db = getConfigDb();
const rows = db.prepare('SELECT * FROM config_screen ORDER BY id ASC').all();
return { success: true, data: rows.map(parseConfigRow) };
});
+26
View File
@@ -0,0 +1,26 @@
// 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 });
}
});
+14
View File
@@ -0,0 +1,14 @@
// server/api/config/screen/[id].delete.ts
import { getConfigDb } from '~/server/utils/configDb';
export default defineEventHandler((event) => {
const id = Number(getRouterParam(event, 'id'));
if (!id) throw createError({ statusCode: 400, message: 'ID tidak valid' });
const db = getConfigDb();
const existing = db.prepare('SELECT * FROM config_screen WHERE id = ?').get(id) as any;
if (!existing) throw createError({ statusCode: 404, message: 'Screen tidak ditemukan' });
db.prepare('DELETE FROM config_screen WHERE id = ?').run(id);
return { success: true, message: `Screen ${existing.namaScreen} berhasil dihapus` };
});
+31
View File
@@ -0,0 +1,31 @@
// server/api/config/screen/[id].put.ts
import { getConfigDb, parseConfigRow } from '~/server/utils/configDb';
export default defineEventHandler(async (event) => {
const id = Number(getRouterParam(event, 'id'));
if (!id) throw createError({ statusCode: 400, message: 'ID tidak valid' });
const body = await readBody(event);
const { namaScreen, nomorScreen, klinik } = body;
const db = getConfigDb();
const existing = db.prepare('SELECT * FROM config_screen WHERE id = ?').get(id);
if (!existing) throw createError({ statusCode: 404, message: 'Screen tidak ditemukan' });
db.prepare(
`UPDATE config_screen SET
namaScreen = ?,
nomorScreen = ?,
klinik = ?,
updatedAt = strftime('%s', 'now')
WHERE id = ?`
).run(
namaScreen ?? (existing as any).namaScreen,
nomorScreen ?? (existing as any).nomorScreen,
klinik !== undefined ? JSON.stringify(klinik) : (existing as any).klinik,
id
);
const updated = db.prepare('SELECT * FROM config_screen WHERE id = ?').get(id);
return { success: true, data: parseConfigRow(updated), message: 'Screen berhasil diperbarui' };
});