query( "SELECT id, nama_spbu, nomor_wa, status_24jam, latitude, longitude, created_at FROM spbu ORDER BY created_at DESC" ); $data = []; while ($row = $res->fetch_assoc()) { $row['id'] = (int) $row['id']; $row['latitude'] = (float) $row['latitude']; $row['longitude'] = (float) $row['longitude']; $data[] = $row; } echo json_encode(['status' => 'success', 'data' => $data]); $conn->close(); exit; } // ── Tambah SPBU baru ───────────────────────────────────────── if ($method === 'POST') { $body = json_decode(file_get_contents('php://input'), true); $nama = trim($body['nama_spbu'] ?? ''); $wa = trim($body['nomor_wa'] ?? ''); $status = in_array($body['status_24jam'] ?? '', ['yes','no']) ? $body['status_24jam'] : 'no'; $lat = isset($body['latitude']) ? (float) $body['latitude'] : null; $lng = isset($body['longitude']) ? (float) $body['longitude'] : null; if (!$nama || !$wa || $lat === null || $lng === null) { http_response_code(400); echo json_encode(['status' => 'error', 'message' => 'Data tidak lengkap']); exit; } $conn = getConnection(); $stmt = $conn->prepare( "INSERT INTO spbu (nama_spbu, nomor_wa, status_24jam, latitude, longitude) VALUES (?, ?, ?, ?, ?)" ); $stmt->bind_param('sssdd', $nama, $wa, $status, $lat, $lng); if ($stmt->execute()) { echo json_encode([ 'status' => 'success', 'message' => 'SPBU berhasil ditambahkan', 'id' => $stmt->insert_id ]); } else { http_response_code(500); echo json_encode(['status' => 'error', 'message' => $stmt->error]); } $stmt->close(); $conn->close(); exit; } // ── Update SPBU ────────────────────────────────────────────── if ($method === 'PUT' && $id) { $body = json_decode(file_get_contents('php://input'), true); $nama = trim($body['nama_spbu'] ?? ''); $wa = trim($body['nomor_wa'] ?? ''); $status = in_array($body['status_24jam'] ?? '', ['yes','no']) ? $body['status_24jam'] : 'no'; $lat = isset($body['latitude']) ? (float) $body['latitude'] : null; $lng = isset($body['longitude']) ? (float) $body['longitude'] : null; if (!$nama || !$wa || $lat === null || $lng === null) { http_response_code(400); echo json_encode(['status' => 'error', 'message' => 'Data tidak lengkap']); exit; } $conn = getConnection(); $stmt = $conn->prepare( "UPDATE spbu SET nama_spbu=?, nomor_wa=?, status_24jam=?, latitude=?, longitude=? WHERE id=?" ); $stmt->bind_param('sssddi', $nama, $wa, $status, $lat, $lng, $id); if ($stmt->execute()) { echo json_encode(['status' => 'success', 'message' => 'SPBU berhasil diupdate']); } else { http_response_code(500); echo json_encode(['status' => 'error', 'message' => $stmt->error]); } $stmt->close(); $conn->close(); exit; } // ── Hapus SPBU ─────────────────────────────────────────────── if ($method === 'DELETE' && $id) { $conn = getConnection(); $stmt = $conn->prepare("DELETE FROM spbu WHERE id=?"); $stmt->bind_param('i', $id); if ($stmt->execute()) { echo json_encode(['status' => 'success', 'message' => 'SPBU berhasil dihapus']); } else { http_response_code(500); echo json_encode(['status' => 'error', 'message' => $stmt->error]); } $stmt->close(); $conn->close(); exit; } http_response_code(405); echo json_encode(['status' => 'error', 'message' => 'Method tidak diizinkan']);