first commit

This commit is contained in:
cowrie
2026-01-30 12:39:40 +08:00
commit a2f9e06d09
7 changed files with 173 additions and 0 deletions

12
api/Dockerfile Normal file
View File

@ -0,0 +1,12 @@
FROM node:20-alpine
WORKDIR /app
RUN npm init -y && npm install express
COPY server.js .
COPY data.json .
EXPOSE 3000
CMD ["node", "server.js"]

7
api/data.json Normal file
View File

@ -0,0 +1,7 @@
{
"CO2": 2.43,
"CO": 0.56,
"BZ": 3.11,
"AQ": 100,
"updated_at": "2026-01-30T03:48:16.033Z"
}

63
api/server.js Normal file
View File

@ -0,0 +1,63 @@
const express = require("express");
const fs = require("fs");
const app = express();
const PORT = 3000;
const DATA_FILE = "./data.json";
// Helper: read data
function readData() {
return JSON.parse(fs.readFileSync(DATA_FILE, "utf8"));
}
// Helper: write data
function writeData(data) {
fs.writeFileSync(DATA_FILE, JSON.stringify(data, null, 2));
}
// ============================
// GET /api/data → read values
// ============================
app.get("/data", (req, res) => {
try {
const data = readData();
res.json(data);
} catch (err) {
res.status(500).json({ error: "Gagal membaca data" });
}
});
// ===========================================
// GET /api/update?co2=&co=&bz=&aq=
// ===========================================
app.get("/update", (req, res) => {
const { co2, co, bz, aq } = req.query;
if (!co2 || !co || !bz || !aq) {
return res.status(400).json({
error: "Parameter wajib: co2, co, bz, aq"
});
}
const newData = {
CO2: Number(co2),
CO: Number(co),
BZ: Number(bz),
AQ: Number(aq),
updated_at: new Date().toISOString()
};
try {
writeData(newData);
res.json({
message: "Data berhasil diperbarui",
data: newData
});
} catch (err) {
res.status(500).json({ error: "Gagal menyimpan data" });
}
});
app.listen(PORT, () => {
console.log(`API berjalan di port ${PORT}`);
});