mirror of
https://github.com/matt-fidd/stratos.git
synced 2026-01-01 20:19:30 +00:00
Add route for test template page
This commit is contained in:
61
routes/singleTestTemplate.js
Normal file
61
routes/singleTestTemplate.js
Normal file
@@ -0,0 +1,61 @@
|
||||
'use strict';
|
||||
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const validator = require('../lib/validator');
|
||||
|
||||
router.get('/:id', async (req, res) => {
|
||||
const tt = req.tt;
|
||||
const linkRoot = `/admin/test-template/${tt.id}`;
|
||||
|
||||
return res.render('testTemplate', {
|
||||
...req.hbsContext,
|
||||
title: `Stratos - ${tt.name}`,
|
||||
current: 'Test Templates',
|
||||
name: tt.name,
|
||||
id: tt.id,
|
||||
maxMark: tt.maxMark,
|
||||
editLink: `${linkRoot}/edit`,
|
||||
deleteLink: `${linkRoot}/delete`,
|
||||
basedTests: await tt.getTests()
|
||||
});
|
||||
});
|
||||
|
||||
router.post('/:id/edit', async (req, res) => {
|
||||
const tt = req.tt;
|
||||
const returnURL = `/admin/test-template/${tt.id}`;
|
||||
|
||||
let fields;
|
||||
try {
|
||||
fields = validator.validate(req.body,
|
||||
[
|
||||
'maxMark',
|
||||
'name'
|
||||
]
|
||||
).fields;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
return res.redirect(returnURL);
|
||||
}
|
||||
|
||||
await Promise.all([
|
||||
tt.setMaxMark(fields.get('maxMark')),
|
||||
tt.setName(fields.get('name'))
|
||||
]);
|
||||
|
||||
res.redirect(returnURL);
|
||||
});
|
||||
|
||||
router.post('/:id/delete', async (req, res) => {
|
||||
const tt = req.tt;
|
||||
await tt.delete();
|
||||
|
||||
res.redirect('/admin/test-templates');
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
priority: 50,
|
||||
root: '/admin/test-template',
|
||||
router: router
|
||||
};
|
||||
Reference in New Issue
Block a user