Files

83 lines
3.3 KiB
PHP

<?php
/**
* edit.php
* Menangani edit data SPBU.
* Latitude dan longitude TIDAK bisa diubah melalui endpoint ini.
*/
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['status' => 'error', 'message' => 'Method tidak diizinkan.']);
exit;
}
require_once 'koneksi.php';
$tipe = isset($_POST['tipe']) ? trim($_POST['tipe']) : '';
// Saat ini hanya menangani edit SPBU
if ($tipe === 'spbu') {
$id = isset($_POST['id']) ? intval($_POST['id']) : 0;
$nama_spbu = isset($_POST['nama_spbu']) ? trim($_POST['nama_spbu']) : '';
$status_ramai = isset($_POST['status_ramai']) ? trim($_POST['status_ramai']) : '';
$buka_24_jam = isset($_POST['buka_24_jam']) ? trim($_POST['buka_24_jam']) : '';
$status_operasional = isset($_POST['status_operasional']) ? trim($_POST['status_operasional']) : '';
$nomor_hp = isset($_POST['nomor_hp']) ? trim($_POST['nomor_hp']) : '';
// Validasi
if ($id <= 0 || empty($nama_spbu) || empty($status_ramai) || empty($buka_24_jam) || empty($status_operasional)) {
echo json_encode(['status' => 'error', 'message' => 'Data tidak lengkap atau ID tidak valid.']);
exit;
}
$valid_ramai = ['ramai', 'tidak_ramai'];
$valid_24 = ['ya', 'tidak'];
$valid_ops = ['buka', 'tutup'];
if (!in_array($status_ramai, $valid_ramai) || !in_array($buka_24_jam, $valid_24) || !in_array($status_operasional, $valid_ops)) {
echo json_encode(['status' => 'error', 'message' => 'Nilai enum tidak valid.']);
exit;
}
// Update — latitude & longitude sengaja tidak diubah
$stmt = $koneksi->prepare(
"UPDATE spbu SET nama_spbu=?, status_ramai=?, buka_24_jam=?, status_operasional=?, nomor_hp=?
WHERE id=?"
);
$stmt->bind_param('sssssi', $nama_spbu, $status_ramai, $buka_24_jam, $status_operasional, $nomor_hp, $id);
if ($stmt->execute()) {
if ($stmt->affected_rows >= 0) {
// Ambil data lengkap (termasuk lat/lng) untuk dikembalikan ke JS
$sel = $koneksi->prepare("SELECT id, nama_spbu, status_ramai, buka_24_jam, status_operasional, nomor_hp, latitude, longitude FROM spbu WHERE id=?");
$sel->bind_param('i', $id);
$sel->execute();
$res = $sel->get_result();
$data = $res->fetch_assoc();
$sel->close();
$data['id'] = (int)$data['id'];
$data['latitude'] = (float)$data['latitude'];
$data['longitude'] = (float)$data['longitude'];
echo json_encode([
'status' => 'success',
'message' => 'Data SPBU berhasil diupdate.',
'data' => $data
]);
} else {
echo json_encode(['status' => 'error', 'message' => 'Data tidak ditemukan.']);
}
} else {
echo json_encode(['status' => 'error', 'message' => 'Gagal update: ' . $stmt->error]);
}
$stmt->close();
} else {
echo json_encode(['status' => 'error', 'message' => 'Tipe tidak dikenali untuk edit.']);
}
$koneksi->close();