Step toward a one-page application
[vchess.git] / routes / variant.js
... / ...
CommitLineData
1// (any) variant page (with room, games, problems ...)
2
3let router = require("express").Router();
4const createError = require('http-errors');
5const VariantModel = require("../models/Variant");
6const selectLanguage = require("../utils/language.js");
7const access = require("../utils/access");
8
9router.get("/:vname([a-zA-Z0-9]+)", (req,res,next) => {
10 const vname = req.params["vname"];
11 VariantModel.getByName(vname, (err,variant) => {
12 if (!!err)
13 return next(err);
14 if (!variant)
15 return next(createError(404));
16 res.render('variant', {
17 title: vname + ' Variant',
18 variant: variant, //the variant ID might also be useful
19 lang: selectLanguage(req, res),
20 });
21 });
22});
23
24// Load a rules page (AJAX)
25router.get("/rules/:vname([a-zA-Z0-9]+)", access.ajax, (req,res) => {
26 const lang = selectLanguage(req, res);
27 res.render("rules/" + req.params["vname"] + "/" + lang);
28});
29
30module.exports = router;