const express = require("express"); const fs = require("fs"); const app = express(); app.use(express.json()); const DATA_FILE = "./get.json"; // helper functions const readData = () => { const raw = fs.readFileSync(DATA_FILE, "utf8"); return JSON.parse(raw); }; const writeData = (data) => { fs.writeFileSync(DATA_FILE, JSON.stringify(data, null, 2)); }; // 1) /view → GET app.get("/view", (req, res) => { const data = readData(); res.json(data); }); // 2) /totalexpenses → GET app.get("/totalexpenses", (req, res) => { const data = readData(); const total = data.expense.reduce((sum, e) => sum + e.amount, 0); res.json({ amount: total }); }); // 3) /addexpense → POST app.post("/addexpense", (req, res) => { const { expense, type } = req.body; const data = readData(); if (data.saving > expense) { const newId = data.expense.length > 0 ? data.expense[data.expense.length - 1].id + 1 : 1; data.expense.push({ id: newId, name: type, amount: expense, }); data.saving -= expense; writeData(data); return res.json(data); } return res.json({ message: "Given amount is greater", }); }); // 4) /savings → PATCH app.patch("/savings", (req, res) => { const data = readData(); const totalExpense = data.expense.reduce((s, e) => s + e.amount, 0); data.saving = Number(data.salary) - totalExpense; writeData(data); res.json(data); }); // 5) /deleteExpense → GET app.get("/deleteExpense", (req, res) => { const id = Number(req.query.id); const data = readData(); data.expense = data.expense.filter((e) => e.id !== id); writeData(data); res.json(data); }); module.exports = app;