const sql = require('../utils/sql');
|
|
|
|
const TEMPLATE_FILE = "blog/sideBar.html";
|
|
|
|
const includes = require('../includes/includes.js');
|
|
|
|
|
|
const getInformationForRecentPosts = function(templateContext)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
sql.getRecentPosts().then(function(posts)
|
|
{
|
|
posts.forEach(function(p)
|
|
{
|
|
p.url = '/' + p.category + '/' + p.url;
|
|
});
|
|
templateContext.recentPosts = posts;
|
|
resolve();
|
|
}).catch(function(error)
|
|
{
|
|
reject(error);
|
|
})
|
|
});
|
|
};
|
|
|
|
const getInformationForCategories = function(templateContext)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
sql.getCategories().then(function(categories)
|
|
{
|
|
categories.forEach(function(cat)
|
|
{
|
|
cat.url = "/category/" + cat.url;
|
|
});
|
|
|
|
templateContext.categories = categories;
|
|
resolve();
|
|
}).catch(function(error)
|
|
{
|
|
reject(error);
|
|
});
|
|
});
|
|
};
|
|
|
|
|
|
const getInformationForPinnedPosts = function(templateContext)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
sql.getPinnedPosts().then(function(posts)
|
|
{
|
|
posts.forEach(function(p)
|
|
{
|
|
p.url = '/' + p.category + '/' + p.url;
|
|
});
|
|
templateContext.pinnedPosts = posts;
|
|
resolve();
|
|
}).catch(function(error)
|
|
{
|
|
reject(error);
|
|
})
|
|
});
|
|
};
|
|
|
|
|
|
module.exports=
|
|
{
|
|
main: function(templateContext)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
Promise.all([includes.fetchTemplate(TEMPLATE_FILE),
|
|
getInformationForRecentPosts(templateContext),
|
|
getInformationForPinnedPosts(templateContext),
|
|
getInformationForCategories(templateContext)])
|
|
.then(function(content)
|
|
{
|
|
templateContext.sideBar = content[0];
|
|
resolve();
|
|
}).catch(function(error)
|
|
{
|
|
reject(error);
|
|
});
|
|
})
|
|
}
|
|
};
|