summaryrefslogtreecommitdiff
path: root/lib/bucky.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-09-07 14:51:20 -0400
committerJules Laplace <jules@okfoc.us>2015-09-07 14:51:20 -0400
commit9957952d2761b1d2b216a9310339e28f25df9f6c (patch)
tree5195075b01434f327b73162eee0fa22825e506fd /lib/bucky.js
parent43265c66f757222bbe8fefb670300c0a3d3b51bf (diff)
mailbox api
Diffstat (limited to 'lib/bucky.js')
-rw-r--r--lib/bucky.js33
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()
})