var db = require('./db') var bucky = module.exports = { /* INDEX */ ensureLatestThreads: function (req, res, next){ db.getLatestThreads().then(function(threads){ res.threads = threads res.threads_ids = res.threads.pluck("id").sort() next() }) }, ensureCommentCountsForThreads: function (req, res, next){ db.getCommentCounts(res.threads_ids).then(function(counts){ var lookup = {} counts.forEach(function(c,i){ res.threads.at(i).set("comment_count", c.count) }) next() }) }, ensureFileCountsForThreads: function (req, res, next){ db.getFileCounts(res.threads_ids).then(function(counts){ var lookup = {} counts.forEach(function(c,i){ res.threads.at(i).set("file_count", c.count) }) next() }) }, ensureFileSizeForThreads: function (req, res, next){ db.getFileSizes(res.threads_ids).then(function(sizes){ var lookup = {} sizes.forEach(function(c,i){ res.threads.at(i).set("file_size", c.size) }) next() }) }, ensureHootbox: function (req, res, next){ db.getCommentsForThread(1, 50).then(function(hootbox){ res.hootbox = hootbox.forEach(function(comment){ comment.set("comment", comment.get("comment").toString() ) }) next() }) }, /* DETAILS */ ensureThread: function (req, res, next){ db.getThread(req.param.id).then(function(thread){ if (thread) { res.thread = thread next() } else { res.sendCode(404) } }) }, ensureKeywordForThread: function (req, res, next){ var keyword = res.thread.get('keyword') if (! keyword) return next() db.getKeyword(keyword).then(function(keyword){ res.keyword = keyword next() }) }, ensureCommentsForThread: function (req, res, next){ db.getCommentsForThread(id).then(function(comments){ res.comments = comments next() }) }, ensureFilesForThread: function (req, res, next){ db.getCommentsForThread(id).then(function(files){ res.files = files next() }) }, }