Add alarm endpoints, basic budget routes, spend history
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();
+ }
+};
|