mirror of https://gitgud.io/fatchan/jschan.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
52 lines
1.5 KiB
'use strict';
|
|
|
|
const express = require('express')
|
|
, router = express.Router()
|
|
, Boards = require(__dirname+'/../db-models/boards.js')
|
|
, home = require(__dirname+'/../models/pages/home.js')
|
|
, register = require(__dirname+'/../models/pages/register.js')
|
|
, manage = require(__dirname+'/../models/pages/manage.js')
|
|
, login = require(__dirname+'/../models/pages/login.js')
|
|
, board = require(__dirname+'/../models/pages/board.js')
|
|
, thread = require(__dirname+'/../models/pages/thread.js')
|
|
, checkAuth = require(__dirname+'/../helpers/check-auth.js')
|
|
, numberConverter = require(__dirname+'/../helpers/number-converter.js');
|
|
|
|
//login page
|
|
router.get('/login', login);
|
|
|
|
//register
|
|
router.get('/register', register);
|
|
|
|
//logged in user manage page
|
|
router.get('/:board/manage', Boards.exists, checkAuth, Boards.canManage, manage);
|
|
|
|
//homepage with list of boards
|
|
router.get('/', home);
|
|
|
|
// board page/recents
|
|
router.get('/:board/:page(\\d+)?', Boards.exists, numberConverter, (req, res, next) => {
|
|
|
|
const errors = [];
|
|
|
|
if (req.params.page && req.params.page <= 0) {
|
|
errors.push('Invalid page.');
|
|
}
|
|
|
|
if (errors.length > 0) {
|
|
return res.status(400).render('message', {
|
|
'title': 'Bad request',
|
|
'errors': errors,
|
|
'redirect': `/${req.params.board}`
|
|
});
|
|
}
|
|
|
|
board(req, res);
|
|
|
|
});
|
|
|
|
// thread view page
|
|
router.get('/:board/thread/:id(\\d+)', Boards.exists, numberConverter, thread);
|
|
|
|
module.exports = router;
|
|
|
|
|