1
0
mirror of https://github.com/matt-fidd/stratos.git synced 2026-01-02 08:19:31 +00:00

Fix multiple instantiation problem

This commit is contained in:
2022-03-30 10:08:46 +00:00
parent a97c2e3dc5
commit b489f055aa
4 changed files with 14 additions and 12 deletions

View File

@@ -70,11 +70,12 @@ router.all(/user\/(.{36})(\/.*)?/, async (req, res, next) => {
))) )))
return res.redirect('/admin/dashboard'); return res.redirect('/admin/dashboard');
req.user = u;
next(); next();
}); });
router.get('/user/:id', async (req, res) => { router.get('/user/:id', (req, res) => {
const u = await new User(req.db, null, req.params.id); const u = req.user;
return res.render('user', { return res.render('user', {
title: `Stratos - ${u.shortName}`, title: `Stratos - ${u.shortName}`,

View File

@@ -76,6 +76,7 @@ router.all(/class\/(.{36})(\/.*)?/, async (req, res, next) => {
))) )))
return res.redirect('/admin/classes'); return res.redirect('/admin/classes');
req.class = c;
next(); next();
}); });

View File

@@ -6,11 +6,10 @@ const router = express.Router();
const validator = require('../lib/validator'); const validator = require('../lib/validator');
const Class = require('../lib/Class');
const User = require('../lib/User'); const User = require('../lib/User');
router.get('/:id', async (req, res) => { 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 linkRoot = `/admin/class/${c.id}`;
const upcomingTests = await c.getTests({ range: 'after' }); const upcomingTests = await c.getTests({ range: 'after' });
const recentTests = await c.getTests({ range: 'before' }); 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) => { router.get('/:id/:memberType(members|teachers)', (req, res) => {
const c = await new Class(req.db, req.params.id); const c = req.class;
const linkRoot = `/admin/class/${c.id}`; const linkRoot = `/admin/class/${c.id}`;
let users, addLink, addContent, pageTitle; 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) => { router.get('/:id/:userType(members|teachers)/add', (req, res) => {
const c = await new Class(req.db, req.params.id); const c = req.class;
const userType = const userType =
req.params.userType === 'teachers' ? req.params.userType === 'teachers' ?
'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) => { 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 userType = req.params.userType;
const rejectURL = `/admin/class/${c.id}/${userType}/add`; 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) => { 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`; const rejectURL = `/admin/class/${c.id}/students/add`;
let fields; let fields;

View File

@@ -133,11 +133,12 @@ router.all(/test\/(.{36})(\/.*)?/, async (req, res, next) => {
))) )))
return res.redirect('/admin/tests'); return res.redirect('/admin/tests');
req.test = t;
next(); next();
}); });
router.get('/test/:id', async (req, res) => { router.get('/test/:id', (req, res) => {
const t = await new Test(req.db, req.params.id); const t = req.test;
const linkRoot = `/admin/test/${t.id}`; const linkRoot = `/admin/test/${t.id}`;
return res.render('test', { return res.render('test', {