menambah fitur-poverty

This commit is contained in:
tistopandita
2026-06-10 22:46:14 +07:00
parent 08b84fea98
commit 08844a90d7
5 changed files with 1982 additions and 59 deletions
+41 -58
View File
@@ -3,6 +3,7 @@ const express = require("express");
const cors = require("cors");
const path = require("path");
const db = require("./db");
const povertyRoutes = require("./routes/poverty");
require("dotenv").config();
const app = express();
@@ -11,7 +12,7 @@ const PORT = process.env.PORT || 3000;
// ─── Middleware ───────────────────────────────────────────────────────────────
app.use(cors());
app.use(express.json());
app.use("/api/poverty", povertyRoutes);
// Sajikan folder frontend secara statis
app.use(express.static(path.join(__dirname, "../frontend")));
@@ -284,12 +285,10 @@ app.post("/api/spbu", async (req, res) => {
.json({ success: false, message: "Semua field wajib diisi." });
}
if (!Array.isArray(jenis_bbm) || jenis_bbm.length === 0) {
return res
.status(400)
.json({
success: false,
message: "Minimal satu jenis BBM harus dipilih.",
});
return res.status(400).json({
success: false,
message: "Minimal satu jenis BBM harus dipilih.",
});
}
try {
const [result] = await db.execute(
@@ -307,21 +306,17 @@ app.post("/api/spbu", async (req, res) => {
manual_override || "auto",
],
);
res
.status(201)
.json({
success: true,
message: "SPBU berhasil ditambahkan.",
id: result.insertId,
});
res.status(201).json({
success: true,
message: "SPBU berhasil ditambahkan.",
id: result.insertId,
});
} catch (err) {
if (err.code === "ER_DUP_ENTRY") {
return res
.status(409)
.json({
success: false,
message: `Kode SPBU '${kode}' sudah digunakan.`,
});
return res.status(409).json({
success: false,
message: `Kode SPBU '${kode}' sudah digunakan.`,
});
}
res.status(500).json({ success: false, message: err.message });
}
@@ -460,12 +455,10 @@ app.get("/api/jalan/:id", async (req, res) => {
app.post("/api/jalan", async (req, res) => {
const { nama_jalan, jenis_jalan, koordinat } = req.body;
if (!nama_jalan || !jenis_jalan || !koordinat) {
return res
.status(400)
.json({
success: false,
message: "nama_jalan, jenis_jalan, dan koordinat wajib diisi.",
});
return res.status(400).json({
success: false,
message: "nama_jalan, jenis_jalan, dan koordinat wajib diisi.",
});
}
const jenisValid = ["nasional", "provinsi", "kota_kabupaten"];
if (!jenisValid.includes(jenis_jalan)) {
@@ -480,13 +473,11 @@ app.post("/api/jalan", async (req, res) => {
"INSERT INTO jalan (nama_jalan, jenis_jalan, koordinat) VALUES (?, ?, ?)",
[nama_jalan.trim(), jenis_jalan, koordinatStr],
);
res
.status(201)
.json({
success: true,
message: "Jalan berhasil ditambahkan.",
id: result.insertId,
});
res.status(201).json({
success: true,
message: "Jalan berhasil ditambahkan.",
id: result.insertId,
});
} catch (err) {
res.status(500).json({ success: false, message: err.message });
}
@@ -496,12 +487,10 @@ app.post("/api/jalan", async (req, res) => {
app.put("/api/jalan/:id", async (req, res) => {
const { nama_jalan, jenis_jalan, koordinat } = req.body;
if (!nama_jalan || !jenis_jalan || !koordinat) {
return res
.status(400)
.json({
success: false,
message: "nama_jalan, jenis_jalan, dan koordinat wajib diisi.",
});
return res.status(400).json({
success: false,
message: "nama_jalan, jenis_jalan, dan koordinat wajib diisi.",
});
}
try {
const koordinatStr =
@@ -573,12 +562,10 @@ app.get("/api/bangunan/:id", async (req, res) => {
app.post("/api/bangunan", async (req, res) => {
const { nama_bangunan, jenis_bangunan, nama_jalan, koordinat } = req.body;
if (!nama_bangunan || !jenis_bangunan || !koordinat) {
return res
.status(400)
.json({
success: false,
message: "nama_bangunan, jenis_bangunan, dan koordinat wajib diisi.",
});
return res.status(400).json({
success: false,
message: "nama_bangunan, jenis_bangunan, dan koordinat wajib diisi.",
});
}
const jenisValid = ["SHM", "HGB", "HGU", "HP", "HPL"];
if (!jenisValid.includes(jenis_bangunan)) {
@@ -598,13 +585,11 @@ app.post("/api/bangunan", async (req, res) => {
koordinatStr,
],
);
res
.status(201)
.json({
success: true,
message: "Bangunan berhasil ditambahkan.",
id: result.insertId,
});
res.status(201).json({
success: true,
message: "Bangunan berhasil ditambahkan.",
id: result.insertId,
});
} catch (err) {
res.status(500).json({ success: false, message: err.message });
}
@@ -614,12 +599,10 @@ app.post("/api/bangunan", async (req, res) => {
app.put("/api/bangunan/:id", async (req, res) => {
const { nama_bangunan, jenis_bangunan, nama_jalan, koordinat } = req.body;
if (!nama_bangunan || !jenis_bangunan || !koordinat) {
return res
.status(400)
.json({
success: false,
message: "nama_bangunan, jenis_bangunan, dan koordinat wajib diisi.",
});
return res.status(400).json({
success: false,
message: "nama_bangunan, jenis_bangunan, dan koordinat wajib diisi.",
});
}
try {
const koordinatStr =