summary refs log tree commit diff
path: root/src/api/routes/alarmRoutes.js
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-06-01 11:13:55 +0200
committerRory& <root@rory.gay>2025-06-01 11:13:55 +0200
commit4e12e02bc805170e6b03d33e0ef894b2a3021fb3 (patch)
treea525a35cfcc28f80bbe33d152fe483d14d8b23d1 /src/api/routes/alarmRoutes.js
parentUpdate test client (diff)
downloadnodejs-final-assignment-4e12e02bc805170e6b03d33e0ef894b2a3021fb3.tar.xz
Add alarm endpoints, basic budget routes, spend history
Diffstat (limited to 'src/api/routes/alarmRoutes.js')
-rw-r--r--src/api/routes/alarmRoutes.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/api/routes/alarmRoutes.js b/src/api/routes/alarmRoutes.js
new file mode 100644

index 0000000..5170327 --- /dev/null +++ b/src/api/routes/alarmRoutes.js
@@ -0,0 +1,41 @@ +import { validateAuth } from '#api/middlewares/index.js'; +import { UserType } from '#db/schemas/index.js'; + +export const alarmByUserRoute = { + route: '/alarm/:id', + onGetValidation: validateAuth({ roles: [UserType.MONITOR] }), + async onGet(req, res) { + const user = await getUserById(req.query.id); + res.send(user.alarm); + }, + + onDeleteValidation: validateAuth({ roles: [UserType.MONITOR] }), + async onDelete(req, res) { + const user = await getUserById(req.query.id); + user.alarm = null; + await user.save(); + res.status(204).send(); + } +}; + +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(); + } +};