diff --git a/src/api/routes.js b/src/api/routes.js
index 09606f1..5151187 100644
--- a/src/api/routes.js
+++ b/src/api/routes.js
@@ -1,6 +1,21 @@
import * as routes from './routes/index.js';
+function logHttpEntry(method, route, exampleBody) {
+ console.log('%', method, '{{baseUrl}}' + route, 'HTTP/1.1');
+ if (exampleBody) {
+ console.log('%', 'Content-Type: application/json');
+ console.log('% ');
+ console.log('%', exampleBody);
+ console.log('% ');
+ }
+ console.log('% ');
+ console.log('%', '###');
+}
+
export function registerRoutes(app) {
+ // http file header:
+ console.log('%', '');
+
// app.get("/status", routes.statusRoute);
let routeCount = 0;
Object.values(routes).forEach(route => {
@@ -16,19 +31,25 @@ export function registerRoutes(app) {
app.get(route.route, route.onGetValidation, route.onGet);
else app.get(route.route, route.onGet);
routeCount++;
+ logHttpEntry('GET', route.route, route.exampleGetBody);
}
+
if (route.onPost) {
if (route.onPostValidation)
app.post(route.route, route.onPostValidation, route.onPost);
else app.post(route.route, route.onPost);
routeCount++;
+ logHttpEntry('POST', route.route, route.examplePostBody);
}
+
if (route.onPut) {
if (route.onPutValidation)
app.put(route.route, route.onPutValidation, route.onPut);
else app.put(route.route, route.onPut);
routeCount++;
+ logHttpEntry('PUT', route.route, route.examplePutBody);
}
+
if (route.onDelete) {
if (route.onDeleteValidation)
app.delete(
@@ -38,12 +59,15 @@ export function registerRoutes(app) {
);
else app.delete(route.route, route.onDelete);
routeCount++;
+ logHttpEntry('DELETE', route.route, route.exampleDeleteBody);
}
+
if (route.onPatch) {
if (route.onPatchValidation)
app.patch(route.route, route.onPatchValidation, route.onPatch);
else app.patch(route.route, route.onPatch);
routeCount++;
+ logHttpEntry('PATCH', route.route, route.examplePatchBody);
}
});
console.log(`Registered ${routeCount} routes.`);
diff --git a/src/api/routes/alarmRoutes.js b/src/api/routes/alarmRoutes.js
index 5170327..e50d4b2 100644
--- a/src/api/routes/alarmRoutes.js
+++ b/src/api/routes/alarmRoutes.js
@@ -5,19 +5,27 @@ export const alarmByUserRoute = {
route: '/alarm/:id',
onGetValidation: validateAuth({ roles: [UserType.MONITOR] }),
async onGet(req, res) {
- const user = await getUserById(req.query.id);
+ 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.query.id);
+ const user = await getUserById(req.params.id);
user.alarm = null;
await user.save();
res.status(204).send();
}
};
+export const alarmListRoute = {
+ route: '/alarms',
+ onGetValidation: validateAuth({ roles: [UserType.MONITOR] }),
+ onGet(req, res) {
+ console.log(req.user.monitoredUsers);
+ }
+};
+
export const alarmRoute = {
onGetValidation: validateAuth({ roles: [UserType.USER] }),
async onGet(req, res) {
diff --git a/src/api/routes/auth/adminAccountRoutes.js b/src/api/routes/auth/adminAccountRoutes.js
new file mode 100644
index 0000000..f85cc73
--- /dev/null
+++ b/src/api/routes/auth/adminAccountRoutes.js
@@ -0,0 +1,24 @@
+import { deleteUser, loginUser, registerUser, UserType } from '#db/index.js';
+import { AuthDto, RegisterDto } from '#dto/index.js';
+import { validateAuth } from '#api/middlewares/index.js';
+
+export const adminGetUsersRoute = {
+ route: '/admin/users',
+ onGetValidation: validateAuth({ roles: [UserType.ADMIN] }),
+ async onGet(req, res) {
+ res.send(DbUser.find({}).exec());
+ }
+};
+export const adminUserRoute = {
+ route: '/admin/user/:id',
+ onGetValidation: validateAuth({ roles: [UserType.ADMIN] }),
+ async onGet(req, res) {
+ const user = await getUserById(req.params.id);
+ },
+
+ onDeleteValidation: validateAuth({ roles: [UserType.ADMIN] }),
+ async onDelete(req, res) {
+ await deleteUser(data);
+ res.status(204).send();
+ }
+};
diff --git a/src/api/routes/auth/index.js b/src/api/routes/auth/index.js
index e687911..2d2cc86 100644
--- a/src/api/routes/auth/index.js
+++ b/src/api/routes/auth/index.js
@@ -1,2 +1,3 @@
export * from './accountRoutes.js';
export * from './deviceRoutes.js';
+export * from './adminAccountRoutes.js';
|