When finding all groups involving a number, load from DB not memory

FREEBIE
This commit is contained in:
Scott Nonnenberg 2017-07-21 11:00:25 -07:00
parent 0adc398a6f
commit 3e0fa995dd
3 changed files with 12 additions and 10 deletions

View File

@ -116,8 +116,11 @@
});
},
getAllGroupsInvolvingId: function(id) {
return conversations.filter(function(conversation) {
return !conversation.isPrivate() && conversation.hasMember(id);
var groups = new Whisper.GroupCollection();
return groups.fetchGroups(id).then(function() {
return groups.map(function(group) {
return conversations.add(group);
});
});
},
updateInbox: function() {

View File

@ -17,11 +17,9 @@
conversation.fetch().then(function() {
conversation.addKeyChange(id);
});
var groups = new Whisper.GroupCollection();
return groups.fetchGroups(id).then(function() {
groups.each(function(conversation) {
conversation = ConversationController.add(conversation);
conversation.addKeyChange(id);
ConversationController.getAllGroupsInvolvingId(id).then(function(groups) {
_.forEach(groups, function(group) {
group.addKeyChange(id);
});
});
});

View File

@ -320,9 +320,10 @@
message.save().then(this.trigger.bind(this,'newmessage', message));
if (this.isPrivate()) {
var groups = ConversationController.getAllGroupsInvolvingId(id);
_.forEach(groups, function(group) {
group.addVerifiedChange(id, verified, options);
ConversationController.getAllGroupsInvolvingId(id).then(function(groups) {
_.forEach(groups, function(group) {
group.addVerifiedChange(id, verified, options);
});
});
}
},