2023-02-19 06:30:02 +01:00
|
|
|
const Helpers = require('../helpers');
|
2023-02-19 15:19:46 +01:00
|
|
|
const Sequelize = require('../models');
|
2023-02-19 06:30:02 +01:00
|
|
|
|
2023-02-19 08:07:44 +01:00
|
|
|
async function handler(req, res, next) {
|
|
|
|
try {
|
2023-02-19 16:12:09 +01:00
|
|
|
|
|
|
|
let data = {};
|
|
|
|
let sqldata = await Sequelize.Guestbook.findAll({
|
|
|
|
where: {
|
|
|
|
hidden: false
|
|
|
|
}
|
|
|
|
});
|
|
|
|
if (!sqldata) throw new Error('Failed to get guestbook entries');
|
|
|
|
|
|
|
|
for (let i = 0; i != sqldata.length; i++) {
|
|
|
|
data[sqldata[i].id] = sqldata[i];
|
|
|
|
}
|
|
|
|
|
2023-02-19 08:07:44 +01:00
|
|
|
res.send(await Helpers.ViewLoader.load('guestbook.pug', {
|
|
|
|
current_route: req.originalUrl,
|
|
|
|
ip: req.ip,
|
2023-02-19 16:12:09 +01:00
|
|
|
data
|
2023-02-19 08:07:44 +01:00
|
|
|
}));
|
|
|
|
return;
|
|
|
|
} catch (err) {
|
|
|
|
next(err);
|
|
|
|
}
|
2023-02-19 06:30:02 +01:00
|
|
|
}
|
|
|
|
|
2023-02-19 16:12:09 +01:00
|
|
|
async function submit(req, res, next) {
|
2023-02-19 08:07:44 +01:00
|
|
|
const { name, email, message } = req.body;
|
|
|
|
const hidemail = req.body.hidemail ? (req.body.hidemail == 'on' ? true : false) : false;
|
|
|
|
|
2023-02-19 16:12:09 +01:00
|
|
|
let data = await Sequelize.Guestbook.create({
|
|
|
|
name,
|
|
|
|
email,
|
|
|
|
text: message,
|
|
|
|
hidemail,
|
|
|
|
ip: req.ip,
|
|
|
|
hidden: false,
|
|
|
|
time: Math.floor(Date.now() / 1000)
|
|
|
|
});
|
|
|
|
if (!data) next(new Error('Failed to create a new record.'));
|
|
|
|
|
|
|
|
res.redirect('/guestbook#gb_entry_' + data.id);
|
2023-02-19 15:19:46 +01:00
|
|
|
|
2023-02-19 07:05:36 +01:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-02-19 06:30:02 +01:00
|
|
|
module.exports = (router) => {
|
|
|
|
router.get('/guestbook', handler);
|
2023-02-19 07:05:36 +01:00
|
|
|
router.post('/guestbook/submit', submit);
|
2023-02-19 06:30:02 +01:00
|
|
|
}
|