From b489f055aab0b64bca8d984eadc9feb52cde06d5 Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 30 Mar 2022 10:08:46 +0000 Subject: [PATCH] Fix multiple instantiation problem --- routes/admin.js | 5 +++-- routes/class.js | 1 + routes/singleClass.js | 15 +++++++-------- routes/test.js | 5 +++-- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/routes/admin.js b/routes/admin.js index 85f16b1..7f65608 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -70,11 +70,12 @@ router.all(/user\/(.{36})(\/.*)?/, async (req, res, next) => { ))) return res.redirect('/admin/dashboard'); + req.user = u; next(); }); -router.get('/user/:id', async (req, res) => { - const u = await new User(req.db, null, req.params.id); +router.get('/user/:id', (req, res) => { + const u = req.user; return res.render('user', { title: `Stratos - ${u.shortName}`, diff --git a/routes/class.js b/routes/class.js index 9f79ce2..a00764d 100644 --- a/routes/class.js +++ b/routes/class.js @@ -76,6 +76,7 @@ router.all(/class\/(.{36})(\/.*)?/, async (req, res, next) => { ))) return res.redirect('/admin/classes'); + req.class = c; next(); }); diff --git a/routes/singleClass.js b/routes/singleClass.js index a589df9..81e81be 100644 --- a/routes/singleClass.js +++ b/routes/singleClass.js @@ -6,11 +6,10 @@ const router = express.Router(); const validator = require('../lib/validator'); -const Class = require('../lib/Class'); const User = require('../lib/User'); router.get('/:id', async (req, res) => { - const c = await new Class(req.db, req.params.id); + const c = req.class; const linkRoot = `/admin/class/${c.id}`; const upcomingTests = await c.getTests({ range: 'after' }); const recentTests = await c.getTests({ range: 'before' }); @@ -59,8 +58,8 @@ router.get('/:id', async (req, res) => { }); }); -router.get('/:id/:memberType(members|teachers)', async (req, res) => { - const c = await new Class(req.db, req.params.id); +router.get('/:id/:memberType(members|teachers)', (req, res) => { + const c = req.class; const linkRoot = `/admin/class/${c.id}`; let users, addLink, addContent, pageTitle; @@ -89,8 +88,8 @@ router.get('/:id/:memberType(members|teachers)', async (req, res) => { }); }); -router.get('/:id/:userType(members|teachers)/add', async (req, res) => { - const c = await new Class(req.db, req.params.id); +router.get('/:id/:userType(members|teachers)/add', (req, res) => { + const c = req.class; const userType = req.params.userType === 'teachers' ? 'teachers' : @@ -129,7 +128,7 @@ router.get('/:id/:userType(members|teachers)/add', async (req, res) => { }); router.post('/:id/:userType(members|teachers)/add', async (req, res) => { - const c = await new Class(req.db, req.params.id); + const c = req.class; const userType = req.params.userType; const rejectURL = `/admin/class/${c.id}/${userType}/add`; @@ -174,7 +173,7 @@ router.post('/:id/:userType(members|teachers)/add', async (req, res) => { }); router.post('/:id/members/add2', async (req, res) => { - const c = await new Class(req.db, req.params.id); + const c = req.class; const rejectURL = `/admin/class/${c.id}/students/add`; let fields; diff --git a/routes/test.js b/routes/test.js index a19bccf..ca970b3 100644 --- a/routes/test.js +++ b/routes/test.js @@ -133,11 +133,12 @@ router.all(/test\/(.{36})(\/.*)?/, async (req, res, next) => { ))) return res.redirect('/admin/tests'); + req.test = t; next(); }); -router.get('/test/:id', async (req, res) => { - const t = await new Test(req.db, req.params.id); +router.get('/test/:id', (req, res) => { + const t = req.test; const linkRoot = `/admin/test/${t.id}`; return res.render('test', {