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;
