Define UnregisteredUserError class

// FREEBIE
This commit is contained in:
lilia 2016-05-25 15:04:03 -07:00
parent 81dfdd959f
commit 89d3b772d5
3 changed files with 30 additions and 2 deletions

View file

@ -102,7 +102,17 @@
MessageError.prototype = new ReplayableError();
MessageError.prototype.constructor = MessageError;
function UnregisteredUserError(number, httpError) {
this.name = 'UnregisteredUserError';
this.number = number;
this.code = httpError.code;
this.message = httpError.message;
this.stack = httpError.stack;
}
UnregisteredUserError.prototype = new Error();
UnregisteredUserError.prototype.constructor = UnregisteredUserError;
window.textsecure.UnregisteredUserError = UnregisteredUserError;
window.textsecure.SendMessageNetworkError = SendMessageNetworkError;
window.textsecure.IncomingIdentityKeyError = IncomingIdentityKeyError;
window.textsecure.OutgoingIdentityKeyError = OutgoingIdentityKeyError;
@ -38570,9 +38580,13 @@ OutgoingMessage.prototype = {
transmitMessage: function(number, jsonData, timestamp) {
return this.server.sendMessages(number, jsonData, timestamp).catch(function(e) {
if (e.name === 'HTTPError' && (e.code !== 409 && e.code !== 410 && e.code !== 404)) {
if (e.name === 'HTTPError' && (e.code !== 409 && e.code !== 410)) {
// 409 and 410 should bubble and be handled by doSendMessage
// 404 should throw UnregisteredUserError
// all other network errors can be retried later.
if (e.code === 404) {
throw new textsecure.UnregisteredUserError(number, e);
}
throw new textsecure.SendMessageNetworkError(number, jsonData, e, timestamp);
}
throw e;

View file

@ -101,7 +101,17 @@
MessageError.prototype = new ReplayableError();
MessageError.prototype.constructor = MessageError;
function UnregisteredUserError(number, httpError) {
this.name = 'UnregisteredUserError';
this.number = number;
this.code = httpError.code;
this.message = httpError.message;
this.stack = httpError.stack;
}
UnregisteredUserError.prototype = new Error();
UnregisteredUserError.prototype.constructor = UnregisteredUserError;
window.textsecure.UnregisteredUserError = UnregisteredUserError;
window.textsecure.SendMessageNetworkError = SendMessageNetworkError;
window.textsecure.IncomingIdentityKeyError = IncomingIdentityKeyError;
window.textsecure.OutgoingIdentityKeyError = OutgoingIdentityKeyError;

View file

@ -79,9 +79,13 @@ OutgoingMessage.prototype = {
transmitMessage: function(number, jsonData, timestamp) {
return this.server.sendMessages(number, jsonData, timestamp).catch(function(e) {
if (e.name === 'HTTPError' && (e.code !== 409 && e.code !== 410 && e.code !== 404)) {
if (e.name === 'HTTPError' && (e.code !== 409 && e.code !== 410)) {
// 409 and 410 should bubble and be handled by doSendMessage
// 404 should throw UnregisteredUserError
// all other network errors can be retried later.
if (e.code === 404) {
throw new textsecure.UnregisteredUserError(number, e);
}
throw new textsecure.SendMessageNetworkError(number, jsonData, e, timestamp);
}
throw e;