138 lines
4.4 KiB
JavaScript
138 lines
4.4 KiB
JavaScript
const express = require("express"),
|
|
router = express.Router(),
|
|
promise = require('promise'),
|
|
hbs = require('hbs'),
|
|
path = require('path'),
|
|
log = require("color-logs")(true, true, "Router"),
|
|
session = require('express-session'),
|
|
Template = require('../classes/Template.class.js'),
|
|
Article = require('../classes/Article.class.js'),
|
|
Categorie = require('../classes/Categorie.class.js'),
|
|
Articles = require('../classes/Controllers/Articles.class.js'),
|
|
Categories = require('../classes/Controllers/Categories.class.js');
|
|
|
|
var template = new Template();
|
|
router.get("/", function(req, res){
|
|
var categories = new Categories();
|
|
Promise.all([
|
|
categories.getNav(),
|
|
categories.getHomeListArticles("html")
|
|
]).then((data) => {
|
|
var nav = data[0];
|
|
var content = data[1];
|
|
res.setHeader("Content-type", "text/html");
|
|
var tplData = {
|
|
"blogName": config.siteTitle,
|
|
"title": config.siteHomeTitle,
|
|
"nav": nav,
|
|
"content": content,
|
|
};
|
|
res.render('template.hbs', tplData);
|
|
}).catch((err) => {
|
|
console.log(err);
|
|
throw err;
|
|
});
|
|
});
|
|
|
|
router.get("/admin/", function(req, res){
|
|
var categories = new Categories();
|
|
if(req.session.authenticated === true){
|
|
res.redirect('/admin/dashboard')
|
|
}
|
|
else{
|
|
categories.getNav().then(data => {
|
|
fs.readFile('./views/admin/login.hbs', 'utf-8', (error, source) => {
|
|
var template = hbs.compile(source);
|
|
res.setHeader("Content-type", "text/html");
|
|
var tplData = {
|
|
"blogName": config.siteTitle,
|
|
"title": config.siteHomeTitle,
|
|
"nav": data,
|
|
"content": source,
|
|
};
|
|
res.render('templateAdmin.hbs', tplData);
|
|
});
|
|
}).catch(err => {
|
|
log.debug(err);
|
|
res.setHeader("Content-type", "text/plain");
|
|
res.end("erreur");
|
|
});
|
|
}
|
|
});
|
|
|
|
router.post("/admin/", function(req, res){
|
|
if(req.body.login && req.body.login === config.login && req.body.password && req.body.password === config.password){
|
|
req.session.authenticated = true;
|
|
res.redirect('/admin/dashboard');
|
|
|
|
}
|
|
else{
|
|
res.redirect('/admin/');
|
|
}
|
|
});
|
|
|
|
router.get("/admin/dashboard", function(req, res){
|
|
log.debug(req.session);
|
|
if(req.session.authenticated === true){
|
|
res.setHeader("Content-type", "text/plain");
|
|
res.end("erreur");
|
|
}
|
|
else{
|
|
res.redirect('/admin/');
|
|
}
|
|
});
|
|
|
|
|
|
router.get("/:uri/", function(req, res){
|
|
var categories = new Categories();
|
|
Promise.all([
|
|
categories.getNav(),
|
|
categories.getCategorie(req.params.uri),
|
|
]).then(data => {
|
|
var nav = data[0];
|
|
var categorie = data[1];
|
|
categories.getListArticles(categorie, "html").then((result) => {
|
|
res.setHeader("Content-type", "text/html");
|
|
var tplData = {
|
|
"blogName": config.siteTitle,
|
|
"title": categorie.getTitle() + " - "+config.siteHomeTitle,
|
|
"nav": nav,
|
|
"content": result,
|
|
};
|
|
res.render('template.hbs', tplData);
|
|
})
|
|
}).catch(err => {
|
|
res.setHeader("Content-type", "text/plain");
|
|
res.end("erreur");
|
|
});
|
|
});
|
|
|
|
router.get("/:categories/:slug", function(req, res){
|
|
var categories = new Categories();
|
|
var articles = new Articles();
|
|
Promise.all([
|
|
categories.getNav(),
|
|
categories.getCategorie(req.params.categories)
|
|
]).then(data => {
|
|
var nav = data[0];
|
|
var categorie = data[1];
|
|
categories.getArticle(categorie, req.params.slug).then((result) => {
|
|
res.setHeader("Content-type", "text/html");
|
|
var tplData = {
|
|
"blogName": config.siteTitle,
|
|
"title": categorie.getTitle() + " - "+config.siteHomeTitle,
|
|
"nav": nav,
|
|
"content": result,
|
|
};
|
|
res.render('template.hbs', tplData);
|
|
})
|
|
}).catch(err => {
|
|
log.debug(err);
|
|
res.setHeader("Content-type", "text/plain");
|
|
res.end("erreur");
|
|
});
|
|
});
|
|
|
|
router.use(express.static("./public"));
|
|
|
|
module.exports = router; |