83 lines
3.3 KiB
PHP
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();
|