Last active 15 hours ago

Revision eedfc7eab7b44d67928a72e141b122f33e805499

Hack Raw
1const express = require("express");
2const fs = require("fs");
3
4const app = express();
5app.use(express.json());
6
7const DATA_FILE = "./get.json";
8
9// helper functions
10const readData = () => {
11 const raw = fs.readFileSync(DATA_FILE, "utf8");
12 return JSON.parse(raw);
13};
14
15const writeData = (data) => {
16 fs.writeFileSync(DATA_FILE, JSON.stringify(data, null, 2));
17};
18
19// 1) /view → GET
20app.get("/view", (req, res) => {
21 const data = readData();
22 res.json(data);
23});
24
25// 2) /totalexpenses → GET
26app.get("/totalexpenses", (req, res) => {
27 const data = readData();
28 const total = data.expense.reduce((sum, e) => sum + e.amount, 0);
29 res.json({ amount: total });
30});
31
32// 3) /addexpense → POST
33app.post("/addexpense", (req, res) => {
34 const { expense, type } = req.body;
35 const data = readData();
36
37 if (data.saving > expense) {
38 const newId =
39 data.expense.length > 0
40 ? data.expense[data.expense.length - 1].id + 1
41 : 1;
42
43 data.expense.push({
44 id: newId,
45 name: type,
46 amount: expense,
47 });
48
49 data.saving -= expense;
50 writeData(data);
51 return res.json(data);
52 }
53
54 return res.json({
55 message: "Given amount is greater",
56 });
57});
58
59// 4) /savings → PATCH
60app.patch("/savings", (req, res) => {
61 const data = readData();
62 const totalExpense = data.expense.reduce((s, e) => s + e.amount, 0);
63 data.saving = Number(data.salary) - totalExpense;
64 writeData(data);
65 res.json(data);
66});
67
68// 5) /deleteExpense → GET
69app.get("/deleteExpense", (req, res) => {
70 const id = Number(req.query.id);
71 const data = readData();
72
73 data.expense = data.expense.filter((e) => e.id !== id);
74 writeData(data);
75
76 res.json(data);
77});
78
79module.exports = app;
80