feat: add blog_options and rss feed generation
This commit is contained in:
63
app/server/routes/conclave.js
Normal file
63
app/server/routes/conclave.js
Normal file
@@ -0,0 +1,63 @@
|
||||
import express from 'express';
|
||||
import PostController from '../controllers/Post.controller.js';
|
||||
import OptionController from '../controllers/Option.controller.js';
|
||||
|
||||
var router = express.Router();
|
||||
|
||||
function handleOptionOperation (option) {
|
||||
switch(option.action) {
|
||||
case 'create':
|
||||
OptionController.create(option.name, option.value);
|
||||
break;
|
||||
case 'update':
|
||||
OptionController.update(option.name, option.value);
|
||||
break;
|
||||
case 'delete':
|
||||
OptionController.delete(option.name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
router.get('/', function (_, res) {
|
||||
res.render('conclave/admin_panel');
|
||||
});
|
||||
|
||||
router.get('/new_post', async function(_, res) {
|
||||
res.render('conclave');
|
||||
});
|
||||
|
||||
router.post('/posts/new', async function(req, res) {
|
||||
await PostController.create(req.body.title, req.body.content);
|
||||
res.redirect('/conclave');
|
||||
});
|
||||
|
||||
router.get('/options', async function(_, res) {
|
||||
const options = await OptionController.getAll();
|
||||
res.render('conclave/options', { options });
|
||||
});
|
||||
|
||||
router.get('/options/edit', async function (_, res) {
|
||||
const options = await OptionController.getAll();
|
||||
res.render('conclave/options_edit', { options });
|
||||
});
|
||||
|
||||
// TODO: currently we send the whole options even the one that arent changed. we need to update the front-end to only send the updated ones. I think we will need javascript.
|
||||
router.post('/options/edit', async function (req, res) {
|
||||
if (Array.isArray(req.body.name)) {
|
||||
const options = req.body.name.map((name, index) => {
|
||||
return {
|
||||
name,
|
||||
action: req.body.action[index],
|
||||
value: req.body.value[index]
|
||||
}
|
||||
});
|
||||
|
||||
options.forEach(handleOptionOperation);
|
||||
} else {
|
||||
handleOptionOperation(req.body);
|
||||
}
|
||||
|
||||
res.redirect('/conclave/options');
|
||||
});
|
||||
|
||||
export default router;
|
||||
@@ -1,21 +1,12 @@
|
||||
import express from 'express';
|
||||
var router = express.Router();
|
||||
import PostController from '../controllers/Post.controller.js';
|
||||
import authenticateToken from '../middlewares/authentication.js';
|
||||
|
||||
var router = express.Router();
|
||||
|
||||
/* GET home page. */
|
||||
router.get('/', async function(_, res) {
|
||||
const posts = await PostController.getAll();
|
||||
res.render('index', { title: 'Path to glory', posts: posts });
|
||||
res.render('index', { posts: posts });
|
||||
});
|
||||
|
||||
router.get('/conclave', authenticateToken, async function(_, res) {
|
||||
res.render('conclave');
|
||||
});
|
||||
|
||||
router.post('/conclave/new', authenticateToken, async function(req, res) {
|
||||
console.log(req.body);
|
||||
await PostController.create(req.body.title, req.body.content);
|
||||
res.redirect('/conclave');
|
||||
});
|
||||
export default router;
|
||||
|
||||
Reference in New Issue
Block a user