X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=routes%2Fvariant.js;h=f45c9594b0fed63c4c805e51192104c282e2c932;hp=44b7d804bc3b84782e1a2809ecff53aa991ce95c;hb=8d7e2786f5a67a1b9a77c742d7951e0efbe8747d;hpb=7192f4711467ae73a0f813189f8a4d8cca252bf1 diff --git a/routes/variant.js b/routes/variant.js index 44b7d804..f45c9594 100644 --- a/routes/variant.js +++ b/routes/variant.js @@ -1,33 +1,28 @@ let router = require("express").Router(); const createError = require('http-errors'); -const sqlite3 = require('sqlite3'); -const DbPath = __dirname.replace("/routes", "/db/vchess.sqlite"); -const db = new sqlite3.Database(DbPath); -const selectLanguage = require(__dirname.replace("/routes", "/utils/language.js")); +const VariantModel = require("../models/Variant"); +const selectLanguage = require("../utils/language.js"); +const access = require("../utils/access"); router.get("/:variant([a-zA-Z0-9]+)", (req,res,next) => { const vname = req.params["variant"]; - db.serialize(function() { - db.all("SELECT * FROM Variants WHERE name='" + vname + "'", (err,variant) => { - if (!!err) - return next(err); - if (!variant || variant.length==0) - return next(createError(404)); - res.render('variant', { - title: vname + ' Variant', - variant: vname, - lang: selectLanguage(req, res), - }); + VariantModel.getByName(vname, (err,variant) => { + if (!!err) + return next(err); + if (!variant) + return next(createError(404)); + res.render('variant', { + title: vname + ' Variant', + variant: variant, //the variant ID might also be useful + lang: selectLanguage(req, res), }); }); }); // Load a rules page (AJAX) -router.get("/rules/:variant([a-zA-Z0-9]+)", (req,res) => { - if (!req.xhr) - return res.json({errmsg: "Unauthorized access"}); +router.get("/rules/:vname([a-zA-Z0-9]+)", access.ajax, (req,res) => { const lang = selectLanguage(req, res); - res.render("rules/" + req.params["variant"] + "/" + lang); + res.render("rules/" + req.params["vname"] + "/" + lang); }); module.exports = router;