- /** 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);
- })
- });
- }
- };
|