summary refs log tree commit diff
path: root/src/api
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-06-01 17:41:31 +0200
committerRory& <root@rory.gay>2025-06-01 17:41:31 +0200
commit27cda7df659852317d751b4354f75dd54878d4a7 (patch)
tree6447a352b3b8395a3f51c4c4c647bc004473218a /src/api
parentRewrite routing (diff)
downloadnodejs-final-assignment-27cda7df659852317d751b4354f75dd54878d4a7.tar.xz
Add sensor history, balance
Diffstat (limited to 'src/api')
-rw-r--r--src/api/middlewares/authMiddleware.js8
-rw-r--r--src/api/routes.js21
-rw-r--r--src/api/routes/auth/deviceRoutes.js4
-rw-r--r--src/api/routes/budgetRoutes.js6
4 files changed, 27 insertions, 12 deletions
diff --git a/src/api/middlewares/authMiddleware.js b/src/api/middlewares/authMiddleware.js

index 19de4d8..3a71e45 100644 --- a/src/api/middlewares/authMiddleware.js +++ b/src/api/middlewares/authMiddleware.js
@@ -30,9 +30,13 @@ export function validateAuth(options) { }; } -export const requireUser = validateAuth({ roles: [UserType.USER] }); -export const requireMonitor = validateAuth({ roles: [UserType.MONITOR] }); +export const requireAuth = validateAuth({}); export const requireAdmin = validateAuth({ roles: [UserType.ADMIN] }); +export const requireMonitor = validateAuth({ roles: [UserType.MONITOR] }); +export const requireUser = validateAuth({ roles: [UserType.USER] }); +export const requireUserOrMonitor = validateAuth({ + roles: [UserType.USER, UserType.MONITOR] +}); class AuthValidationOptions { roles; diff --git a/src/api/routes.js b/src/api/routes.js
index ade440e..e808d50 100644 --- a/src/api/routes.js +++ b/src/api/routes.js
@@ -1,11 +1,13 @@ import * as routes from './routes/index.js'; -function logHttpEntry(method, route, exampleBody) { +function logHttpEntry(method, route, exampleBody, description) { + if (description) console.log('%', '#', description); + console.log('%', method, '{{baseUrl}}' + route, 'HTTP/1.1'); if (exampleBody) { console.log('%', 'Content-Type: application/json'); console.log('% '); - console.log('%', exampleBody); + console.log('%', JSON.stringify(exampleBody, null, 4)); console.log('% '); } console.log('% '); @@ -22,17 +24,22 @@ export function registerRoutes(app) { * @type {RouteDescription} */ const route = routes[routeName]; - console.log( - `Registering ${routeName} (${route.path})`, - routes[routeName] - ); Object.keys(route.methods).forEach(routeMethodName => { /** * @type {RouteMethod} */ const routeMethod = route.methods[routeMethodName]; - console.log(routeMethodName, routeMethod); + console.log( + 'Registering', + routeMethodName.toUpperCase(), + route.path + ); + logHttpEntry( + routeMethodName.toUpperCase(), + route.path, + routeMethod.exampleBody + ); app[routeMethodName](route.path, [ ...routeMethod.middlewares, routeMethod.method diff --git a/src/api/routes/auth/deviceRoutes.js b/src/api/routes/auth/deviceRoutes.js
index ac4514f..849a48c 100644 --- a/src/api/routes/auth/deviceRoutes.js +++ b/src/api/routes/auth/deviceRoutes.js
@@ -1,5 +1,5 @@ -import { deleteUser, loginUser, registerUser } from '#db/index.js'; -import { AuthDto, RegisterDto } from '#dto/index.js'; +import { registerUser } from '#db/index.js'; +import { RegisterDto } from '#dto/index.js'; import { validateAuth } from '#api/middlewares/index.js'; import { RouteDescription, RouteMethod } from '#api/RouteDescription.js'; diff --git a/src/api/routes/budgetRoutes.js b/src/api/routes/budgetRoutes.js
index 1cebffe..a808f58 100644 --- a/src/api/routes/budgetRoutes.js +++ b/src/api/routes/budgetRoutes.js
@@ -5,6 +5,7 @@ import { } from '#api/middlewares/index.js'; import { UserType } from '#db/schemas/index.js'; import { RouteDescription, RouteMethod } from '#api/RouteDescription.js'; +import {getUserById} from "#db/dbAccess/index.js"; /** * @type {RouteDescription} @@ -14,7 +15,10 @@ export const getBudgetByUserRoute = { methods: { get: new RouteMethod({ middlewares: [requireMonitor], - async method(req, res) {} + async method(req, res) { + if (!req.) + const user = await getUserById(req.); + } }) } };