Page Js

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

const Page = require("..

/models/Page");
const validator = require('validator');

exports.renderPage = async (req, res) => {


// res.render('menu-edit');
let data = await Page.getPage(req.path);

if (data.length != 1) {
return res.status(404).send('404 not found');
}

return res.render("page", { "content": data[0] });


}

exports.renderEditPage = async (req, res) => {


let pid = req.query.pageId;

if (!pid || isNaN(pid)) {
return res.status(404).send('404 not found');
}

let data = await Page.getPageByPid(pid);

if (data.length != 1) {
return res.status(404).send('404 not found');
}

return res.render("edit-page", { "content": data[0] });


}

exports.editPage = async (req, res, next) => {

let validation = {}
let image_url;
let author_image_url;

if (!req.files) {
validation.image_url = false;
} else {
Object.keys(req.files).forEach((k, i) => {
let file = req.files

if (file['image_url']) {
image_url = (file['image_url'][0].filename)
}

if (file['author_image_url']) {
author_image_url = file['author_image_url'][0].filename
}
})
}

validation.title = validator.isAscii(req.body.title);
validation.body = validator.isAscii(req.body.body);
validation.author_info = validator.isAscii(req.body.author_info);
validation.page_url = validator.isURL(req.body.page_url, {
require_host: false, allow_protocol_relative_urls: true, validate_length: true
});

var isValid = Object.values(validation).indexOf(false) == -1;

if (!isValid) {
res.locals.form_error = 'You have an error in your form';
res.locals.validation = validation;
next();
return;
}

let params = {
title: req.body.title,
image_url: image_url,
body: req.body.body.trim(),
author_image_url: author_image_url,
author_info: req.body.author_info,
page_url: req.body.page_url,
};

let pid = req.body.pid.trim();

if (!pid || isNaN(pid)) {
return res.status(404).send('404 not found');
}

let response = await Page.updatePage(pid, params);

next();
}

exports.renderPageList = async (req, res) => {


let data = await Page.getPageList();

return res.render("page-list", { "rows": data })


}

You might also like