X-Git-Url: https://git.auder.net/?a=blobdiff_plain;ds=sidebyside;f=routes%2Fvariant.js;fp=routes%2Fvariant.js;h=44b7d804bc3b84782e1a2809ecff53aa991ce95c;hb=298c42e63ae321526693e9ce418c4113af36e025;hp=0000000000000000000000000000000000000000;hpb=067c675b75072c496f9665c4bf801cdc3d40398d;p=vchess.git diff --git a/routes/variant.js b/routes/variant.js new file mode 100644 index 00000000..44b7d804 --- /dev/null +++ b/routes/variant.js @@ -0,0 +1,33 @@ +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")); + +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), + }); + }); + }); +}); + +// Load a rules page (AJAX) +router.get("/rules/:variant([a-zA-Z0-9]+)", (req,res) => { + if (!req.xhr) + return res.json({errmsg: "Unauthorized access"}); + const lang = selectLanguage(req, res); + res.render("rules/" + req.params["variant"] + "/" + lang); +}); + +module.exports = router;