summary refs log tree commit diff
path: root/src/api/routes/alarmRoutes.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/routes/alarmRoutes.js')
-rw-r--r--src/api/routes/alarmRoutes.js22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/api/routes/alarmRoutes.js b/src/api/routes/alarmRoutes.js

index f62aa6c..438b0d3 100644 --- a/src/api/routes/alarmRoutes.js +++ b/src/api/routes/alarmRoutes.js
@@ -5,6 +5,7 @@ import { } from '#api/middlewares/index.js'; import { UserType } from '#db/schemas/index.js'; import { RouteMethod } from '#api/RouteDescription.js'; +import { getUserById } from '#db/dbAccess/index.js'; /** * @type {RouteDescription} @@ -14,15 +15,17 @@ export const alarmByUserRoute = { methods: { get: new RouteMethod({ middlewares: [requireMonitor], + description: 'Get the alarm for a monitored user, if one is set', async method(req, res) { const user = await getUserById(req.params.id); res.send(user.alarm); } }), - put: new RouteMethod({ + delete: new RouteMethod({ middlewares: [requireMonitor], + description: 'Clear the alarm for a monitored user', async method(req, res) { - const user = await getUserById(req.params.id); + const user = await getUserById(req.params.id).exec(); user.alarm = null; await user.save(); res.status(204).send(); @@ -39,8 +42,20 @@ export const alarmListRoute = { methods: { get: new RouteMethod({ middlewares: [requireMonitor], + description: 'Get a list of all alarms for monitored users', async method(req, res) { console.log(req.user.monitoredUsers); + const alarms = []; + for (const userId of req.user.monitoredUsers) { + const user = await getUserById(userId).exec(); + if (user.alarm) { + alarms.push({ + user: userId, + alarm: user.alarm + }); + } + } + res.send(alarms); } }) } @@ -54,12 +69,14 @@ export const alarmRoute = { methods: { get: new RouteMethod({ middlewares: [requireUser], + description: "Get the current user's alarm", async method(req, res) { res.send(req.user.alarm); } }), put: new RouteMethod({ middlewares: [requireUser], + description: 'Raise an alarm', async method(req, res) { req.user.alarm = req.body; await req.user.save(); @@ -68,6 +85,7 @@ export const alarmRoute = { }), delete: new RouteMethod({ middlewares: [requireUser], + description: 'Clear alarm', async method(req, res) { req.user.alarm = null; await req.user.save();