|
|
|
import Book from '../../data/Book';
|
|
|
|
import Settings, { SETTINGS_FILE } from '../../data/Settings';
|
|
|
|
const express = require('express');
|
|
|
|
const moment = require('moment');
|
|
|
|
const router = express.Router();
|
|
|
|
const book = new Book();
|
|
|
|
const settings = new Settings();
|
|
|
|
const indexLimit = 5;
|
|
|
|
|
|
|
|
//--------------------------
|
|
|
|
// Index
|
|
|
|
//--------------------------
|
|
|
|
router.get('/', function (req, res) {
|
|
|
|
settings
|
|
|
|
.load(SETTINGS_FILE)
|
|
|
|
.then(config => {
|
|
|
|
book.getPage().then(result => {
|
|
|
|
result.sort((a, b) => parseFloat(b.metadata.id) - parseFloat(a.metadata.id));
|
|
|
|
let indexPages = [];
|
|
|
|
let indexCount = 0;
|
|
|
|
result.forEach(page => {
|
|
|
|
if (
|
|
|
|
typeof page.metadata.deleted === 'undefined' ||
|
|
|
|
page.metadata.deleted === false
|
|
|
|
) {
|
|
|
|
if (indexCount === indexLimit) return;
|
|
|
|
indexPages.push({
|
|
|
|
page: page,
|
|
|
|
date: moment(page.metadata.created).fromNow()
|
|
|
|
});
|
|
|
|
++indexCount;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
let pageData = [];
|
|
|
|
if (req.session.user) {
|
|
|
|
pageData = { title: config.global.title, status: true, pages: indexPages };
|
|
|
|
} else {
|
|
|
|
pageData = { title: config.global.title, status: false, pages: indexPages };
|
|
|
|
}
|
|
|
|
|
|
|
|
res.render('index', pageData);
|
|
|
|
});
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
if (err.code === 'ENOENT') {
|
|
|
|
let setupData = { title: 'Fipamo Set up' };
|
|
|
|
res.render('init', setupData);
|
|
|
|
} else {
|
|
|
|
res.render('error', { error: err });
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
//--------------------------
|
|
|
|
// Logout
|
|
|
|
//--------------------------
|
|
|
|
router.post('/logout', function (req, res) {
|
|
|
|
req.logout();
|
|
|
|
return res.json({
|
|
|
|
message: 'LOGGED OUT'
|
|
|
|
});
|
|
|
|
});
|
|
|
|
module.exports = router;
|