var Promise = require('promise'); const sql = require('../utils/sql'); const utils = require('../utils/utils.js'); /** * Renders all posts in a single category * * @param resultURL * @returns {*} */ var renderPosts = function(resultURL) { var splitURL = resultURL.split("/"); if(splitURL.length >= 3) { return new Promise(function(resolve, reject) { sql.getPostsFromCategory(splitURL[2]).then(function(posts) { var promises = []; posts.forEach(function(p) { promises.push(new Promise(function(res, rej) { require("../posts/singlePost.js") .renderPreview(p).then(function(html) { res(html); }).catch(function(error) { rej(error); }) })); }); Promise.all(promises).then(function(content) { resolve("
" + content.join('') + "
"); }).catch(function(error) { reject(error); }); }).catch(function(err) { reject(err); }) }); } else { return utils.print404(); } }; module.exports= { /** * Calls posts and sidebar modules to render blog contents in order * * @param res * @param fileName request url */ main: function(requestURL, request) { return new Promise(function(resolve, reject) { Promise.all([renderPosts(requestURL), require("../sidebar/sidebar.js").main()]).then(function(content) { resolve(content.join('')); }).catch(function(err) { reject(err); }) }); } };