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();
|