Normalize send-path error handling
Receive and handle an array of errors in both the group and individual cases.
This commit is contained in:
parent
80993753de
commit
8ed73d0ce5
2 changed files with 12 additions and 6 deletions
|
@ -66,14 +66,20 @@
|
||||||
else {
|
else {
|
||||||
sendFunc = textsecure.messaging.sendMessageToGroup;
|
sendFunc = textsecure.messaging.sendMessageToGroup;
|
||||||
}
|
}
|
||||||
sendFunc(this.get('id'), body, attachments, now).catch(function(e) {
|
sendFunc(this.get('id'), body, attachments, now).catch(function(errors) {
|
||||||
if (e.name === 'OutgoingIdentityKeyError') {
|
var keyErrors = [];
|
||||||
e.args.push(message.id);
|
_.each(errors, function(e) {
|
||||||
message.save({ errors : [e] }).then(function() {
|
if (e.error.name === 'OutgoingIdentityKeyError') {
|
||||||
|
e.error.args.push(message.id);
|
||||||
|
keyErrors.push(e.error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (keyErrors.length) {
|
||||||
|
message.save({ errors : keyErrors }).then(function() {
|
||||||
extension.trigger('message', message); // notify frontend listeners
|
extension.trigger('message', message); // notify frontend listeners
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
throw e;
|
throw errors;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -238,7 +238,7 @@ window.textsecure.messaging = function() {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
sendMessageProto(timestamp, [number], proto, function(res) {
|
sendMessageProto(timestamp, [number], proto, function(res) {
|
||||||
if (res.failure.length > 0)
|
if (res.failure.length > 0)
|
||||||
reject(res.failure[0].error);
|
reject(res.failure);
|
||||||
else
|
else
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue