diff --git a/index.js b/index.js index f98752e..1d31c45 100644 --- a/index.js +++ b/index.js @@ -36,6 +36,7 @@ app.use(express.static('public')); const indexRoutes = require('./src/routes/index'); const projectRoutes = require('./src/routes/project'); const hardwareRoutes = require('./src/routes/hardware'); +const benchmarkRoutes = require('./src/routes/benchmark'); // register routes app.get('/', indexRoutes.getIndex); @@ -51,6 +52,12 @@ app.get('/hardware/list', hardwareRoutes.getList); app.get('/hardware/add', hardwareRoutes.getAdd); app.post('/hardware/add', hardwareRoutes.postAdd); app.get('/hardware/:hardware_id', hardwareRoutes.getView); +// benchmark routes +app.get('/benchmark', benchmarkRoutes.getIndex); +app.get('/benchmark/list', benchmarkRoutes.getList); +app.get('/benchmark/add', benchmarkRoutes.getAdd); +app.post('/benchmark/add', benchmarkRoutes.postAdd); +app.get('/benchmark/:benchmark_id', benchmarkRoutes.getView); app.listen(port, () => { console.log(`Leviathan listening on port ${port}`); diff --git a/src/routes/benchmark.js b/src/routes/benchmark.js new file mode 100644 index 0000000..4ceba1d --- /dev/null +++ b/src/routes/benchmark.js @@ -0,0 +1,42 @@ +const Benchmark = require('../models').models.Benchmark; + +// GET /benchmark - redirects to benchmark list +exports.getIndex = async function(req, res) { + res.redirect('/benchmark/list'); +}; + +// GET /benchmark/list - list of benchmarks +exports.getList = async function(req, res) { + var benchmarks = await Benchmark.findAll(); + res.render('benchmark/list', { + benchmarks: benchmarks + }); +}; + +// GET /benchmark/:benchmark_id - view information about a benchmark +exports.getView = async function(req, res) { + var benchmark = await Benchmark.findAll({ + where: { + id: req.params.benchmark_id + } + }); + res.render('benchmark/view', { + benchmark: benchmark[0] + }); +}; + +// GET /benchmark/add - add a new benchmark +exports.getAdd = async function(req, res) { + res.render('benchmark/add'); +}; + +// POST /benchmark/add - add the benchmark to the database +exports.postAdd = async function(req, res) { + var benchmark = await Benchmark.create({ + name: req.body.benchmark_name, + scoring: req.body.benchmark_scoring, + description: req.body.benchmark_description + }); + + res.redirect('/benchmark'); +}; diff --git a/views/benchmark/add.twig b/views/benchmark/add.twig new file mode 100644 index 0000000..0cb2f60 --- /dev/null +++ b/views/benchmark/add.twig @@ -0,0 +1,40 @@ +{% extends 'layouts/default.twig' %} + +{% block title %}Add a Benchmark{% endblock %} + +{% block content %} +
Benchmark name | +Scoring type | +Created at | +Last updated | +
{{ b.name }} | +{{ b.scoring }} | +{{ b.createdAt | date('m/d/Y g:ia') }} | +{{ b.updatedAt | date('m/d/Y g:ia') }} | +
Scoring type: {{ benchmark.scoring }}
+ +{{ benchmark.description }}
+ +