|
|
@ -41,17 +41,23 @@
|
|
|
|
},
|
|
|
|
},
|
|
|
|
onReceipt: function(receipt) {
|
|
|
|
onReceipt: function(receipt) {
|
|
|
|
var messages = new Whisper.MessageCollection();
|
|
|
|
var messages = new Whisper.MessageCollection();
|
|
|
|
var groups = new GroupCollection();
|
|
|
|
messages.fetchSentAt(receipt.get('timestamp')).then(function() {
|
|
|
|
Promise.all([
|
|
|
|
if (messages.length === 0) { return; }
|
|
|
|
groups.fetchGroups(receipt.get('source')),
|
|
|
|
|
|
|
|
messages.fetchSentAt(receipt.get('timestamp'))
|
|
|
|
|
|
|
|
]).then(function() {
|
|
|
|
|
|
|
|
var ids = groups.pluck('id');
|
|
|
|
|
|
|
|
ids.push(receipt.get('source'));
|
|
|
|
|
|
|
|
var message = messages.find(function(message) {
|
|
|
|
var message = messages.find(function(message) {
|
|
|
|
return (!message.isIncoming() &&
|
|
|
|
return (!message.isIncoming() && receipt.get('source') === message.get('conversationId'));
|
|
|
|
_.contains(ids, message.get('conversationId')));
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
if (message) { return message; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var groups = new GroupCollection();
|
|
|
|
|
|
|
|
return groups.fetchGroups(receipt.get('source')).then(function() {
|
|
|
|
|
|
|
|
var ids = groups.pluck('id');
|
|
|
|
|
|
|
|
ids.push(receipt.get('source'));
|
|
|
|
|
|
|
|
return messages.find(function(message) {
|
|
|
|
|
|
|
|
return (!message.isIncoming() &&
|
|
|
|
|
|
|
|
_.contains(ids, message.get('conversationId')));
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}).then(function(message) {
|
|
|
|
if (message) {
|
|
|
|
if (message) {
|
|
|
|
this.remove(receipt);
|
|
|
|
this.remove(receipt);
|
|
|
|
var deliveries = message.get('delivered') || 0;
|
|
|
|
var deliveries = message.get('delivered') || 0;
|
|
|
|