Initial commit untuk UAS SIG
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
// ============================================
|
||||
// create_jalan.php — INSERT data Jalan (Garis)
|
||||
// ============================================
|
||||
|
||||
header('Content-Type: application/json');
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
header('Access-Control-Allow-Methods: POST');
|
||||
header('Access-Control-Allow-Headers: Content-Type');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
|
||||
http_response_code(200);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
http_response_code(405);
|
||||
echo json_encode(['success' => false, 'message' => 'Metode tidak diizinkan.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/koneksi.php';
|
||||
|
||||
$body = file_get_contents('php://input');
|
||||
$data = json_decode($body, true);
|
||||
|
||||
if (!$data) {
|
||||
http_response_code(400);
|
||||
echo json_encode(['success' => false, 'message' => 'Body request tidak valid.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$required = ['nama_jalan', 'status', 'panjang', 'geom'];
|
||||
foreach ($required as $field) {
|
||||
if (!isset($data[$field])) {
|
||||
http_response_code(422);
|
||||
echo json_encode(['success' => false, 'message' => "Field '$field' wajib diisi."]);
|
||||
exit;
|
||||
}
|
||||
if (!is_array($data[$field]) && trim((string)$data[$field]) === '') {
|
||||
http_response_code(422);
|
||||
echo json_encode(['success' => false, 'message' => "Field '$field' tidak boleh kosong."]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$nama_jalan = trim($data['nama_jalan']);
|
||||
$status = $data['status'];
|
||||
$panjang = (float) $data['panjang'];
|
||||
$geom = is_array($data['geom']) ? json_encode($data['geom']) : $data['geom'];
|
||||
|
||||
if (!in_array($status, ['Nasional', 'Provinsi', 'Kabupaten'], true)) {
|
||||
http_response_code(422);
|
||||
echo json_encode(['success' => false, 'message' => "Status jalan tidak valid."]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$conn = getConnection();
|
||||
$sql = "INSERT INTO jalan (nama_jalan, status, panjang, geom) VALUES (?, ?, ?, ?)";
|
||||
$stmt = $conn->prepare($sql);
|
||||
|
||||
if (!$stmt) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['success' => false, 'message' => 'Gagal menyiapkan query: ' . $conn->error]);
|
||||
$conn->close();
|
||||
exit;
|
||||
}
|
||||
|
||||
$stmt->bind_param('ssds', $nama_jalan, $status, $panjang, $geom);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
$newId = $stmt->insert_id;
|
||||
http_response_code(201);
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'message' => 'Data Jalan berhasil disimpan.',
|
||||
'data' => [
|
||||
'id' => $newId,
|
||||
'nama_jalan' => $nama_jalan,
|
||||
'status' => $status,
|
||||
'panjang' => $panjang,
|
||||
'geom' => json_decode($geom, true),
|
||||
],
|
||||
]);
|
||||
} else {
|
||||
http_response_code(500);
|
||||
echo json_encode(['success' => false, 'message' => 'Gagal menyimpan data: ' . $stmt->error]);
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
$conn->close();
|
||||
Reference in New Issue
Block a user