/** DB query */
|
|
const sql = require('../utils/sql');
|
|
|
|
/** Object used to render blog post previews */
|
|
const batchPreview = require('../posts/renderBatchOfPreviewes');
|
|
|
|
/**
|
|
* Renders all posts in a single category
|
|
*
|
|
* @param resultURL
|
|
* @returns {*}
|
|
*/
|
|
const renderPosts = function(resultURL, page)
|
|
{
|
|
const splitURL = resultURL.split("/");
|
|
if(splitURL.length >= 3)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
sql.getPostsFromCategory(splitURL[2]).then(function(posts)
|
|
{
|
|
resolve(batchPreview.main(resultURL, posts, page, 5));
|
|
}).catch(function(error)
|
|
{
|
|
reject(error);
|
|
})
|
|
});
|
|
}
|
|
else
|
|
{
|
|
reject("Page Not Found");
|
|
}
|
|
};
|
|
|
|
module.exports=
|
|
{
|
|
/**
|
|
* Calls posts and sidebar modules to render blog contents in order
|
|
*
|
|
* @param requestURL
|
|
* @param request
|
|
* @returns {Promise}
|
|
*/
|
|
main: function(requestURL, request)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
var page = request.query.page;
|
|
Promise.all([renderPosts(requestURL, page),
|
|
require("../sidebar/sidebar.js").main()]).then(function(content)
|
|
{
|
|
resolve(content.join(''));
|
|
}).catch(function(err)
|
|
{
|
|
reject(err);
|
|
})
|
|
});
|
|
}
|
|
};
|