diff options
| author | Jules Laplace <jules@okfoc.us> | 2015-09-07 14:51:20 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2015-09-07 14:51:20 -0400 |
| commit | 9957952d2761b1d2b216a9310339e28f25df9f6c (patch) | |
| tree | 5195075b01434f327b73162eee0fa22825e506fd /lib/bucky.js | |
| parent | 43265c66f757222bbe8fefb670300c0a3d3b51bf (diff) | |
mailbox api
Diffstat (limited to 'lib/bucky.js')
| -rw-r--r-- | lib/bucky.js | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/lib/bucky.js b/lib/bucky.js index 742f74d..db1672c 100644 --- a/lib/bucky.js +++ b/lib/bucky.js @@ -16,8 +16,11 @@ var bucky = module.exports = { 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) + counts.forEach(function(c){ + lookup[c.thread] = c + }) + res.threads.forEach(function(thread){ + thread.set("comment_count", lookup[thread.id].count) }) next() }) @@ -134,27 +137,39 @@ var bucky = module.exports = { /* MAIL */ - ensureMailbox: function (req, res, next){ + ensureMailboxes: function (req, res, next){ + var username = req.user.get('username') var box = req.params.box + var mbox = username + "." + box if (! box) { res.sendStatus(404) } - db.getMailbox(req.user.username, box).then(function(box){ - if (! box) { + db.getMailboxes(username).then(function(boxes){ + if (! boxes) { return res.sendStatus(404) } + if (! boxes.models.some(function(box){ return box.get('mbox') == mbox })) { + return res.sendStatus(404) + } + res.boxes = boxes next() }) }, ensureMailboxCounts: function (req, res, next){ - db.getMailboxes(req.user.username).then(function(boxes){ - res.boxes = boxes + db.getMailboxCounts(res.boxes.pluck("mbox")).then(function(counts){ + var lookup = {} + counts.forEach(function(c){ + lookup[c.mbox] = c + }) + res.boxes.forEach(function(box){ + var count = lookup[box.get('mbox')] ? lookup[box.get('mbox')].count : 0 + box.set("count", count) + }) next() }) }, ensureMessages: function (req, res, next){ - // todo: define offset - db.getMessages(req.user.username, req.params.box, 50, 0).then(function(messages){ + db.getMessages(req.user.get('username'), req.params.box, 50, 0).then(function(messages){ res.messages = messages next() }) |
