72 lines
2.3 KiB
PHP
72 lines
2.3 KiB
PHP
<?php
|
|
// api/rumah_ibadah.php — CRUD Rumah Ibadah
|
|
require_once __DIR__ . '/config.php';
|
|
$method = $_SERVER['REQUEST_METHOD'];
|
|
$db = getDB();
|
|
|
|
if ($method === 'GET') {
|
|
$rows = $db->query(
|
|
"SELECT ri.*, k.nama AS kelurahan, k.kecamatan
|
|
FROM rumah_ibadah ri
|
|
LEFT JOIN kelurahan k ON ri.kelurahan_id = k.id
|
|
ORDER BY ri.tipe, ri.nama"
|
|
)->fetchAll();
|
|
jsonOk($rows);
|
|
}
|
|
|
|
if ($method === 'POST') {
|
|
requireEdit();
|
|
$d = body();
|
|
if (empty($d['nama'])) jsonError('Nama wajib diisi.');
|
|
if (!isset($d['lat'], $d['lng'])) jsonError('Koordinat wajib diisi.');
|
|
$ikonMap = ['masjid'=>'🕌','gereja'=>'⛪','pura'=>'🛕','vihara'=>'🏛️','klenteng'=>'🏯'];
|
|
$tipe = $d['tipe'] ?? 'masjid';
|
|
$stmt = $db->prepare(
|
|
"INSERT INTO rumah_ibadah (nama, tipe, ikon, lat, lng, kapasitas, kelurahan_id, alamat)
|
|
VALUES (?,?,?,?,?,?,?,?)"
|
|
);
|
|
$stmt->execute([
|
|
$d['nama'], $tipe, $ikonMap[$tipe] ?? '🛕',
|
|
$d['lat'], $d['lng'],
|
|
$d['kapasitas'] ?? 0,
|
|
!empty($d['kelurahan_id']) ? $d['kelurahan_id'] : null,
|
|
$d['alamat'] ?? ''
|
|
]);
|
|
jsonOk(['id' => $db->lastInsertId()], 'Rumah ibadah berhasil ditambahkan');
|
|
}
|
|
|
|
if ($method === 'PUT') {
|
|
requireEdit();
|
|
$id = getParam('id');
|
|
if (!$id) jsonError('ID wajib disertakan.');
|
|
$d = body();
|
|
if (empty($d['nama'])) jsonError('Nama wajib diisi.');
|
|
if (!isset($d['lat'], $d['lng'])) jsonError('Koordinat wajib diisi.');
|
|
$ikonMap = ['masjid'=>'🕌','gereja'=>'⛪','pura'=>'🛕','vihara'=>'🏛️','klenteng'=>'🏯'];
|
|
$tipe = $d['tipe'] ?? 'masjid';
|
|
$stmt = $db->prepare(
|
|
"UPDATE rumah_ibadah
|
|
SET nama=?, tipe=?, ikon=?, lat=?, lng=?, kapasitas=?, kelurahan_id=?, alamat=?
|
|
WHERE id=?"
|
|
);
|
|
$stmt->execute([
|
|
$d['nama'], $tipe, $ikonMap[$tipe] ?? '🛕',
|
|
$d['lat'], $d['lng'],
|
|
$d['kapasitas'] ?? 0,
|
|
!empty($d['kelurahan_id']) ? $d['kelurahan_id'] : null,
|
|
$d['alamat'] ?? '',
|
|
$id
|
|
]);
|
|
jsonOk(null, 'Rumah ibadah berhasil diperbarui');
|
|
}
|
|
|
|
if ($method === 'DELETE') {
|
|
requireEdit();
|
|
$id = getParam('id');
|
|
if (!$id) jsonError('ID wajib disertakan.');
|
|
$db->prepare("DELETE FROM rumah_ibadah WHERE id=?")->execute([$id]);
|
|
jsonOk(null, 'Rumah ibadah berhasil dihapus');
|
|
}
|
|
|
|
jsonError('Method tidak valid', 405);
|