chore: prepare docker webgis deployment

This commit is contained in:
Andrie
2026-06-11 18:14:21 +07:00
parent d2214ad9c8
commit a90748d9c1
149 changed files with 20844 additions and 5 deletions
+24
View File
@@ -0,0 +1,24 @@
<?php
// api/jalan/ambil.php — Ambil semua data jalan
header('Content-Type: application/json');
require_once '../../koneksi.php';
$result = $conn->query("SELECT id, nama_jalan, status_jalan, geojson, panjang_meter FROM data_jalan ORDER BY id DESC");
if (!$result) {
echo json_encode(['status' => 'error', 'message' => $conn->error]);
exit;
}
$data = [];
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
echo json_encode([
'status' => 'success',
'total' => count($data),
'data' => $data
]);
$conn->close();
+27
View File
@@ -0,0 +1,27 @@
<?php
// api/jalan/hapus.php — Hapus data jalan
header('Content-Type: application/json');
require_once '../../koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['status' => 'error', 'message' => 'Method not allowed']);
exit;
}
$id = (int) ($_POST['id'] ?? 0);
if (!$id) {
echo json_encode(['status' => 'error', 'message' => 'ID tidak valid']);
exit;
}
$stmt = $conn->prepare("DELETE FROM data_jalan WHERE id = ?");
$stmt->bind_param('i', $id);
if ($stmt->execute() && $stmt->affected_rows > 0) {
echo json_encode(['status' => 'success', 'message' => 'Data jalan berhasil dihapus']);
} else {
echo json_encode(['status' => 'error', 'message' => 'Data tidak ditemukan atau gagal dihapus']);
}
$stmt->close();
$conn->close();
+56
View File
@@ -0,0 +1,56 @@
<?php
// api/jalan/simpan.php — Simpan data jalan baru
header('Content-Type: application/json');
require_once '../../koneksi.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['status' => 'error', 'message' => 'Method not allowed']);
exit;
}
$nama = trim($_POST['nama_jalan'] ?? '');
$status_jalan = trim($_POST['status_jalan'] ?? '');
$geojson = trim($_POST['geojson'] ?? '');
$panjang = (float) ($_POST['panjang_meter'] ?? 0);
$allowed_status = ['Nasional', 'Provinsi', 'Kabupaten'];
if (!$nama) {
echo json_encode(['status' => 'error', 'message' => 'Nama jalan tidak boleh kosong']);
exit;
}
if (!in_array($status_jalan, $allowed_status)) {
echo json_encode(['status' => 'error', 'message' => 'Status jalan tidak valid']);
exit;
}
// Validasi JSON
json_decode($geojson);
if (json_last_error() !== JSON_ERROR_NONE) {
echo json_encode(['status' => 'error', 'message' => 'Data geometri tidak valid']);
exit;
}
$stmt = $conn->prepare("INSERT INTO data_jalan (nama_jalan, status_jalan, geojson, panjang_meter) VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $nama, $status_jalan, $geojson, $panjang);
if ($stmt->execute()) {
$id = $conn->insert_id;
echo json_encode([
'status' => 'success',
'message' => 'Data jalan berhasil disimpan',
'data' => [
'id' => $id,
'nama_jalan' => $nama,
'status_jalan' => $status_jalan,
'geojson' => $geojson,
'panjang_meter' => $panjang
]
]);
} else {
echo json_encode(['status' => 'error', 'message' => 'Gagal menyimpan: ' . $stmt->error]);
}
$stmt->close();
$conn->close();