From 42b59ad2d6e10b6110948aee0a88418eb5dcd94c Mon Sep 17 00:00:00 2001 From: Rory& Date: Sun, 1 Jun 2025 15:42:18 +0200 Subject: Rewrite routing --- src/api/routes.js | 73 +++++++++++++++++-------------------------------------- 1 file changed, 22 insertions(+), 51 deletions(-) (limited to 'src/api/routes.js') diff --git a/src/api/routes.js b/src/api/routes.js index 5151187..ade440e 100644 --- a/src/api/routes.js +++ b/src/api/routes.js @@ -15,60 +15,31 @@ function logHttpEntry(method, route, exampleBody) { export function registerRoutes(app) { // http file header: console.log('%', ''); - - // app.get("/status", routes.statusRoute); let routeCount = 0; - Object.values(routes).forEach(route => { - console.log('Registering route:', route); - if (!route.route) - throw new Error( - "Route definition is missing 'route' property: " + - JSON.stringify(route) - ); - - if (route.onGet) { - if (route.onGetValidation) - 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); + Object.keys(routes).forEach(routeName => { + /** + * @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); + app[routeMethodName](route.path, [ + ...routeMethod.middlewares, + routeMethod.method + ]); routeCount++; - logHttpEntry('PUT', route.route, route.examplePutBody); - } - - if (route.onDelete) { - if (route.onDeleteValidation) - app.delete( - route.route, - route.onDeleteValidation, - route.onDelete - ); - 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.`); } -- cgit 1.5.1