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.js101
1 files changed, 65 insertions, 36 deletions
diff --git a/src/api/routes/alarmRoutes.js b/src/api/routes/alarmRoutes.js

index e50d4b2..9739f4f 100644 --- a/src/api/routes/alarmRoutes.js +++ b/src/api/routes/alarmRoutes.js
@@ -1,49 +1,78 @@ -import { validateAuth } from '#api/middlewares/index.js'; +import { + requireMonitor, + requireUser, + validateAuth +} from '#api/middlewares/index.js'; import { UserType } from '#db/schemas/index.js'; +import { RouteMethod } from '#api/RouteDescription.js'; +/** + * @type {RouteDescription} + */ export const alarmByUserRoute = { - route: '/alarm/:id', - onGetValidation: validateAuth({ roles: [UserType.MONITOR] }), - async onGet(req, res) { - const user = await getUserById(req.params.id); - res.send(user.alarm); - }, - - onDeleteValidation: validateAuth({ roles: [UserType.MONITOR] }), - async onDelete(req, res) { - const user = await getUserById(req.params.id); - user.alarm = null; - await user.save(); - res.status(204).send(); + path: '/alarm/:id', + methods: { + get: new RouteMethod({ + middlewares: [requireMonitor], + async method(req, res) { + const user = await getUserById(req.params.id); + res.send(user.alarm); + } + }), + put: new RouteMethod({ + middlewares: [requireMonitor], + async method(req, res) { + const user = await getUserById(req.params.id); + user.alarm = null; + await user.save(); + res.status(204).send(); + } + }) } }; +/** + * @type {RouteDescription} + */ export const alarmListRoute = { - route: '/alarms', - onGetValidation: validateAuth({ roles: [UserType.MONITOR] }), - onGet(req, res) { - console.log(req.user.monitoredUsers); + path: '/alarms', + methods: { + get: new RouteMethod({ + middlewares: [requireMonitor], + async method(req, res) { + console.log(req.user.monitoredUsers); + } + }) } }; +/** + * @type {RouteDescription} + */ export const alarmRoute = { - onGetValidation: validateAuth({ roles: [UserType.USER] }), - async onGet(req, res) { - res.send(req.user.alarm); - }, - - route: '/alarm/@me', - onPutValidation: validateAuth({ roles: [UserType.USER] }), - async onPut(req, res) { - req.user.alarm = req.body; - await req.user.save(); - res.status(204).send(); - }, - - onDeleteValidation: validateAuth({ roles: [UserType.USER] }), - async onDelete(req, res) { - req.user.alarm = null; - await req.user.save(); - res.status(204).send(); + path: '/alarm/@me', + methods: { + get: new RouteMethod({ + middlewares: [requireUser], + async method(req, res) { + res.send(req.user.alarm); + } + }), + put: new RouteMethod({ + middlewares: [requireUser], + async method(req, res) { + req.user.alarm = req.body; + await req.user.save(); + res.status(204).send(); + } + }), + delete: new RouteMethod({ + middlewares: [requireUser], + async method(req, res) { + req.user.alarm = null; + await req.user.save(); + res.status(204).send(); + } + }) } };