ulduldp commited on
Commit
9a56c05
·
verified ·
1 Parent(s): ceb0ada

Create routes/pinger.routes.js

Browse files
Files changed (1) hide show
  1. routes/pinger.routes.js +117 -0
routes/pinger.routes.js ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const express = require("express");
2
+ const router = express.Router();
3
+
4
+ const auth = require("../middleware/auth");
5
+ const db = require("../storage/db");
6
+ const { generateId } = require("../utils/helper");
7
+ const service = require("../services/pinger.service");
8
+
9
+ // ALL routes protected
10
+ router.use(auth);
11
+
12
+ // get all
13
+ router.get("/pingers", (req, res) => {
14
+ const pingers = service.getPingers();
15
+ res.json(pingers);
16
+ });
17
+
18
+ // create
19
+ router.post("/set-pinger", (req, res) => {
20
+ const data = service.getPingers();
21
+
22
+ const id = generateId();
23
+
24
+ data.push({
25
+ id,
26
+ ...req.body,
27
+ status: "UNKNOWN",
28
+ latency: 0,
29
+ lastUpdated: null
30
+ });
31
+
32
+ service.savePingers(data);
33
+
34
+ res.json({ id });
35
+ });
36
+
37
+ // logs
38
+ router.get("/get-logs", (req, res) => {
39
+ const { id } = req.query;
40
+
41
+ const pingers = service.getPingers();
42
+ const logs = service.getLogs();
43
+
44
+ const p = pingers.find(x => x.id === id);
45
+
46
+ if (!p) return res.json(null);
47
+
48
+ res.json({
49
+ ...p,
50
+ history: logs[id] || []
51
+ });
52
+ });
53
+
54
+ // delete
55
+ router.delete("/delete", (req, res) => {
56
+ const { id } = req.query;
57
+
58
+ let pingers = service.getPingers();
59
+ const logs = service.getLogs();
60
+
61
+ const index = pingers.findIndex(p => p.id === id);
62
+ if (index === -1) return res.json(false);
63
+
64
+ const deleted = pingers.splice(index, 1)[0];
65
+
66
+ service.savePingers(pingers);
67
+
68
+ const deletedList = db.read("deleted-pingers.json");
69
+ deletedList.push(deleted);
70
+ db.write("deleted-pingers.json", deletedList);
71
+
72
+ delete logs[id];
73
+ service.saveLogs(logs);
74
+
75
+ res.json(true);
76
+ });
77
+
78
+ // restore
79
+ router.post("/restore", (req, res) => {
80
+ const { id } = req.body;
81
+
82
+ let deleted = db.read("deleted-pingers.json");
83
+ let pingers = service.getPingers();
84
+
85
+ const index = deleted.findIndex(p => p.id === id);
86
+ if (index === -1) return res.json(false);
87
+
88
+ const restored = deleted.splice(index, 1)[0];
89
+
90
+ pingers.push(restored);
91
+
92
+ db.write("deleted-pingers.json", deleted);
93
+ service.savePingers(pingers);
94
+
95
+ res.json(true);
96
+ });
97
+
98
+ // backup logs
99
+ router.post("/backup-logs", (req, res) => {
100
+ const logs = service.getLogs();
101
+ const backup = db.read("logs-backup.json");
102
+
103
+ backup.push(logs);
104
+
105
+ db.write("logs-backup.json", backup);
106
+ service.saveLogs({});
107
+
108
+ res.json(true);
109
+ });
110
+
111
+ // delete logs
112
+ router.post("/delete-backup-logs", (req, res) => {
113
+ service.saveLogs({});
114
+ res.json(true);
115
+ });
116
+
117
+ module.exports = router;