Handle group sync for existing groups
// FREEBIE
This commit is contained in:
parent
5925c2fe84
commit
db31835f68
4 changed files with 68 additions and 28 deletions
|
@ -143,6 +143,30 @@
|
|||
});
|
||||
},
|
||||
|
||||
updateNumbers: function(groupId, numbers) {
|
||||
return textsecure.storage.axolotl.getGroup(groupId).then(function(group) {
|
||||
if (group === undefined)
|
||||
throw new Error("Tried to update numbers for unknown group");
|
||||
|
||||
if (numbers.filter(function(number) { return !textsecure.utils.isNumberSane(number); }).length > 0)
|
||||
throw new Error("Invalid number in new group members");
|
||||
|
||||
if (group.numbers.filter(function(number) { return numbers.indexOf(number) < 0 }).length > 0)
|
||||
throw new Error("Attempted to remove numbers from group with an UPDATE");
|
||||
|
||||
var added = numbers.filter(function(number) { return group.numbers.indexOf(number) < 0; });
|
||||
|
||||
return textsecure.storage.groups.addNumbers(groupId, added).then(function(newGroup) {
|
||||
if (newGroup.length != numbers.length ||
|
||||
newGroup.filter(function(number) { return numbers.indexOf(number) < 0; }).length != 0) {
|
||||
throw new Error("Error calculating group member difference");
|
||||
}
|
||||
|
||||
return added;
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
needUpdateByDeviceRegistrationId: function(groupId, number, encodedNumber, registrationId) {
|
||||
return textsecure.storage.axolotl.getGroup(groupId).then(function(group) {
|
||||
if (group === undefined)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue