Skip to content

Instantly share code, notes, and snippets.

@csbenjamin
Last active August 29, 2015 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save csbenjamin/7851b13d1e4557e819c9 to your computer and use it in GitHub Desktop.
Save csbenjamin/7851b13d1e4557e819c9 to your computer and use it in GitHub Desktop.
//schema
var messages_schema = mongoose.Schema({
from: mongoose.Schema.Types.ObjectId
,to: mongoose.Schema.Types.ObjectId
,created_on: Date
,delivered_on: Date
,message: String
});
//update devilered_on
messagesDb.db.update({to:to, from:from, delivered_on:null}, {$set:{delivered_on:now}}, {multi:true}, function(err, result){
if(err) {
console.log(err);
deferred.reject();
return;
}
if(that.users[from]){
that.users[from].notifyDelivery(to, now);
}
deferred.resolve(now);
});
//get unread messages
messagesDb.db.find({to:id, delivered_on:null}).distinct('from').exec( function(err, results){
if(err){
console.log('erro ao obter mensagens não lidas', err);
return;
}
deferred.resolve(results);
});
//get history
messagesDb.db.find({
$or:[
{from:id, to:id2}
,{from:id2, to:id}
]
}).sort({'created_on': -1}).skip(skip).limit(limit).exec( function(err, results){
if(err){
res.json(err);
console.log('erro ao obter histórico', err);
return;
}
var messages = [];
for(var i=results.length-1;i>-1;i--){
messages.push({
id:results[i]._id
,message:results[i].message
,from:results[i].from
,to:results[i].to
,created_on:results[i].created_on
,delivered_on:results[i].delivered_on
});
}
deferred.resolve(messages);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment