Files
D1041231084_WebGis_GeoPoverty/api/rumah_ibadah.php
T
2026-06-11 21:20:59 +07:00

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);