initial commit
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
// api/rumah_ibadah.php
|
||||
require_once __DIR__ . '/config/database.php';
|
||||
require_once __DIR__ . '/helpers/response.php';
|
||||
setCORSHeaders();
|
||||
|
||||
$db = getDB();
|
||||
$method = getMethod();
|
||||
requireWriteAuth($method);
|
||||
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
|
||||
|
||||
switch ($method) {
|
||||
|
||||
// ── GET: ambil semua atau satu data ──────────────────────────────
|
||||
case 'GET':
|
||||
if ($id > 0) {
|
||||
$stmt = $db->prepare(
|
||||
"SELECT id, nama, jenis, alamat, no_wa,
|
||||
latitude, longitude, radius_meter,
|
||||
created_at
|
||||
FROM rumah_ibadah WHERE id = ?"
|
||||
);
|
||||
$stmt->bind_param('i', $id);
|
||||
$stmt->execute();
|
||||
$row = $stmt->get_result()->fetch_assoc();
|
||||
if ($row) {
|
||||
$row['latitude'] = (float)$row['latitude'];
|
||||
$row['longitude'] = (float)$row['longitude'];
|
||||
$row['radius_meter'] = (int)$row['radius_meter'];
|
||||
}
|
||||
$row ? sendSuccess($row) : sendError('Data tidak ditemukan', 404);
|
||||
} else {
|
||||
$sql = "SELECT id, nama, jenis, alamat, no_wa,
|
||||
latitude, longitude, radius_meter,
|
||||
created_at
|
||||
FROM rumah_ibadah ORDER BY created_at DESC";
|
||||
$result = $db->query($sql);
|
||||
$rows = [];
|
||||
while ($r = $result->fetch_assoc()) {
|
||||
$r['latitude'] = (float)$r['latitude'];
|
||||
$r['longitude'] = (float)$r['longitude'];
|
||||
$r['radius_meter'] = (int)$r['radius_meter'];
|
||||
$rows[] = $r;
|
||||
}
|
||||
sendSuccess($rows);
|
||||
}
|
||||
break;
|
||||
|
||||
// ── POST: tambah data baru ────────────────────────────────────────
|
||||
case 'POST':
|
||||
$body = getBody();
|
||||
$required = ['nama', 'jenis', 'latitude', 'longitude', 'radius_meter'];
|
||||
foreach ($required as $field) {
|
||||
if (empty($body[$field]) && $body[$field] !== 0) {
|
||||
sendError("Field '$field' wajib diisi");
|
||||
}
|
||||
}
|
||||
$stmt = $db->prepare(
|
||||
"INSERT INTO rumah_ibadah
|
||||
(nama, jenis, alamat, no_wa, latitude, longitude, radius_meter)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)"
|
||||
);
|
||||
$stmt->bind_param(
|
||||
'ssssddi',
|
||||
$body['nama'],
|
||||
$body['jenis'],
|
||||
$body['alamat'],
|
||||
$body['no_wa'],
|
||||
$body['latitude'],
|
||||
$body['longitude'],
|
||||
$body['radius_meter']
|
||||
);
|
||||
executeOrFail($stmt, 'Gagal menyimpan rumah ibadah');
|
||||
$newId = $db->insert_id;
|
||||
sendSuccess(['id' => $newId], 'Rumah Ibadah berhasil disimpan', 201);
|
||||
break;
|
||||
|
||||
// ── PUT: update data ──────────────────────────────────────────────
|
||||
case 'PUT':
|
||||
if ($id <= 0) sendError('ID wajib disertakan');
|
||||
$body = getBody();
|
||||
$stmt = $db->prepare(
|
||||
"UPDATE rumah_ibadah
|
||||
SET nama=?, jenis=?, alamat=?, no_wa=?,
|
||||
latitude=?, longitude=?, radius_meter=?
|
||||
WHERE id=?"
|
||||
);
|
||||
$stmt->bind_param(
|
||||
'ssssddii',
|
||||
$body['nama'], $body['jenis'],
|
||||
$body['alamat'], $body['no_wa'],
|
||||
$body['latitude'], $body['longitude'],
|
||||
$body['radius_meter'], $id
|
||||
);
|
||||
executeOrFail($stmt, 'Gagal memperbarui rumah ibadah');
|
||||
sendSuccess(null, 'Rumah Ibadah berhasil diperbarui');
|
||||
break;
|
||||
|
||||
// ── DELETE: hapus data ────────────────────────────────────────────
|
||||
case 'DELETE':
|
||||
if ($id <= 0) sendError('ID wajib disertakan');
|
||||
$stmt = $db->prepare("DELETE FROM rumah_ibadah WHERE id=?");
|
||||
$stmt->bind_param('i', $id);
|
||||
executeOrFail($stmt, 'Gagal menghapus rumah ibadah');
|
||||
$stmt->affected_rows > 0
|
||||
? sendSuccess(null, 'Rumah Ibadah berhasil dihapus')
|
||||
: sendError('Data tidak ditemukan', 404);
|
||||
break;
|
||||
|
||||
default:
|
||||
sendError('Method tidak diizinkan', 405);
|
||||
}
|
||||
Reference in New Issue
Block a user