diff --git a/middlewares/topBar.js b/middlewares/topBar.js index 8289005..97d166f 100644 --- a/middlewares/topBar.js +++ b/middlewares/topBar.js @@ -33,10 +33,12 @@ async function getProjectStatusGlobal(req) { async function getInfo(req, res, next) { req.topBar = []; - await getJobStatus(req); - await getSessionStatus(req); - await getHostStatus(req); - await getProjectStatusGlobal(req); + await Promise.all([ + getJobStatus(req), + getSessionStatus(req), + getHostStatus(req), + getProjectStatusGlobal(req), + ]); next(); } diff --git a/routes/pages/index.js b/routes/pages/index.js index cc78278..6d027a1 100644 --- a/routes/pages/index.js +++ b/routes/pages/index.js @@ -36,7 +36,22 @@ router.get('/job/:id', topBar.getInfo, jobs.getJob, dependencies.getJobDependenc }); // project page with id -router.get('/project/:id', topBar.getInfo, projects.getProject, projects.getJobsOfProject, dependencies.getProjectDependencies, (req, res) => { +router.get('/project/:id', async (req, res, next) => { + try { + const wrap = (fn) => new Promise( + (resolve, reject) => fn(req, res, (err) => (err ? reject(err) : resolve())), + ); + await Promise.all([ + wrap(topBar.getInfo), + wrap(projects.getProject), + wrap(projects.getJobsOfProject), + wrap(dependencies.getProjectDependencies), + ]); + next(); + } catch (error) { + next(error); + } +}, (req, res) => { res.render('pages/project', { topBar: req.topBar, id: req.params.id,