summary refs log tree commit diff
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/api')
-rw-r--r--src/api/routes.js24
-rw-r--r--src/api/routes/alarmRoutes.js12
-rw-r--r--src/api/routes/auth/adminAccountRoutes.js24
-rw-r--r--src/api/routes/auth/index.js1
4 files changed, 59 insertions, 2 deletions
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';