From 55f155af03ccf795718394449dd7a74dd41c2cc4 Mon Sep 17 00:00:00 2001 From: Josepablo C Date: Wed, 14 Aug 2024 10:14:25 -0600 Subject: [PATCH] fix(v2): Remove custom hooks; fix(v1): Remove company from JWT context gen --- v1/src/apps/private/lib/context/index.js | 2 +- .../src/Apps/Account/Controller/hooks.js | 16 +---- .../src/Apps/Company/Controller/hooks.js | 16 +---- v2/server/src/Apps/Lib/index.js | 59 ++++++++++++++----- .../Apps/PrivateResources/Controller/hooks.js | 14 +---- v2/server/src/SysS/Connections/index.js | 1 + 6 files changed, 53 insertions(+), 55 deletions(-) diff --git a/v1/src/apps/private/lib/context/index.js b/v1/src/apps/private/lib/context/index.js index 8f585fd..e80d979 100644 --- a/v1/src/apps/private/lib/context/index.js +++ b/v1/src/apps/private/lib/context/index.js @@ -12,7 +12,7 @@ async function middleware( req, res, next ){ user : await usersModel.findById( userID , { password : 0 , session_token : 0 , session_token_exp : 0 } ).populate('company') } req.context.userId = req.context.user.id; - req.context.companyId = req.context.user.company.id || null; + req.context.companyId = req.context.user.company?.id || null; req.context.job_role = req.context.user.job_role || null; req.context.permissions = req.context.user.permissions || null; next(); diff --git a/v2/server/src/Apps/Account/Controller/hooks.js b/v2/server/src/Apps/Account/Controller/hooks.js index c2396f4..9244c36 100644 --- a/v2/server/src/Apps/Account/Controller/hooks.js +++ b/v2/server/src/Apps/Account/Controller/hooks.js @@ -135,7 +135,7 @@ module.exports = { AppInit, hooks : { before: { - /**Array of middleware functions*/ + /**Array of middleware functions or objects lile { endpoint, middleware }*/ all : [], del : [], get : [], @@ -145,17 +145,7 @@ module.exports = { }, after: { - /**Array of middleware functions*/ - all : [], - del : [], - get : [], - patch : [], - post : [], - put : [] - }, - - custom: { - /**Array of objects like { endpoint, middleware }*/ + /**Array of middleware functions or objects lile { endpoint, middleware }*/ all : [ { '/register': dummy_middleware } ], @@ -174,6 +164,6 @@ module.exports = { { '/recover' : post_recover } ], put : [] - } + }, } }; diff --git a/v2/server/src/Apps/Company/Controller/hooks.js b/v2/server/src/Apps/Company/Controller/hooks.js index 609cf74..6c8748a 100644 --- a/v2/server/src/Apps/Company/Controller/hooks.js +++ b/v2/server/src/Apps/Company/Controller/hooks.js @@ -16,7 +16,7 @@ module.exports = { AppInit, hooks : { before: { - /**Array of middleware functions*/ + /**Array of middleware functions or objects lile { endpoint, middleware }*/ all : [], del : [], get : [], @@ -26,23 +26,13 @@ module.exports = { }, after: { - /**Array of middleware functions*/ - all : [], - del : [], - get : [], - patch : [], - post : [], - put : [] - }, - - custom: { - /**Array of objects like { endpoint, middleware }*/ + /**Array of middleware functions or objects lile { endpoint, middleware }*/ all : [ { "/test" : dummy_middleware } ], del : [], get : [], patch : [], post : [], put : [] - } + }, } }; diff --git a/v2/server/src/Apps/Lib/index.js b/v2/server/src/Apps/Lib/index.js index 8c504b8..317362a 100644 --- a/v2/server/src/Apps/Lib/index.js +++ b/v2/server/src/Apps/Lib/index.js @@ -9,13 +9,10 @@ class GenericController{ } init(){ - const { before, after, custom } = this.hooks; + const { before, after } = this.hooks; if( before ){ this.populate_hooks( before ); } - if( custom ){ - this.populate_custom_hooks( custom ); - } if( after ){ this.populate_hooks( after ); } @@ -25,30 +22,31 @@ class GenericController{ populate_hooks( hooks ){ if( (hooks.all) && (hooks.all.length > 0) ){ - this.router.use( hooks.all ); + this.populate_hooks_by_verb( 'all' , hooks.all ); } + if( (hooks.delete) && (hooks.delete.length > 0) ){ - this.router.delete( hooks.del ); + this.populate_hooks_by_verb( 'del', hooks.del ); } if( (hooks.get) && (hooks.get.length > 0) ){ - this.router.get( hooks.get ); + this.populate_hooks_by_verb( 'get', hooks.get ); } if( (hooks.patch) && (hooks.patch.length > 0) ){ - this.router.patch( hooks.patch ); + this.populate_hooks_by_verb( 'patch', hooks.patch ); } if( (hooks.post) && (hooks.post.length > 0) ){ - this.router.post( hooks.post ); + this.populate_hooks_by_verb( 'post', hooks.post ); } if( (hooks.put) && (hooks.put.length > 0) ){ - this.router.put( hooks.put ); + this.populate_hooks_by_verb( 'put', hooks.put ); } } - add_custom_hook( http_verb, endpoint, middleware ){ + add_hook_with_endpoint( http_verb, endpoint, middleware ){ switch( http_verb ){ case 'all': this.router.use( endpoint , middleware ); @@ -73,16 +71,45 @@ class GenericController{ } } - populate_custom_hooks( hooks ){ - for (let http_verb in hooks ){ - for (let custom_hook of hooks[ http_verb ]){ + add_simple_hook( http_verb, middleware ){ + switch( http_verb ){ + case 'all': + this.router.use( middleware ); + break; + case 'del': + this.router.delete( middleware ); + break; + case 'get': + this.router.get( middleware ); + break; + case 'patch': + this.router.patch( middleware ); + break; + case 'post': + this.router.post( middleware ); + break; + case 'put': + this.router.put( middleware ); + break; + default: + return; + } + } + + populate_hooks_by_verb( http_verb, hook_list ){ + for (let custom_hook of hook_list ){ + if( typeof custom_hook === "object" ){ for (let entry of Object.entries(custom_hook) ){ const endpoint = entry[0]; const callback = entry[1]; - this.add_custom_hook( http_verb, endpoint, callback ); + /// Add this hook as an (endpoint, middleware function) pair + this.add_hook_with_endpoint( http_verb, endpoint, callback ); } + }else{ + /// Add this hook as a middleware function + this.add_simple_hook( http_verb, custom_hook ); } - } + } } } diff --git a/v2/server/src/Apps/PrivateResources/Controller/hooks.js b/v2/server/src/Apps/PrivateResources/Controller/hooks.js index 34805a9..8781b23 100644 --- a/v2/server/src/Apps/PrivateResources/Controller/hooks.js +++ b/v2/server/src/Apps/PrivateResources/Controller/hooks.js @@ -19,7 +19,7 @@ module.exports = { AppInit : initEvents, /// Dummy App Init hooks : { before: { - /**Array of middleware functions*/ + /**Array of middleware functions or objects lile { endpoint, middleware }*/ all : [], del : [], get : [ test ], @@ -29,17 +29,7 @@ module.exports = { }, after: { - /**Array of middleware functions*/ - all : [], - del : [], - get : [], - patch : [], - post : [], - put : [] - }, - - custom: { - /**Array of objects like { endpoint, middleware }*/ + /**Array of middleware functions or objects lile { endpoint, middleware }*/ all : [], del : [], get : [], diff --git a/v2/server/src/SysS/Connections/index.js b/v2/server/src/SysS/Connections/index.js index 7820292..a476d39 100644 --- a/v2/server/src/SysS/Connections/index.js +++ b/v2/server/src/SysS/Connections/index.js @@ -42,6 +42,7 @@ class SystemServices { async disconnect(){ this.knex.destroy(); + console.log("SQL Disconnected"); this.SystemServiceState = OFFLINE; }