Async putSessionsForDevice

This commit is contained in:
lilia 2015-04-09 14:54:59 -07:00
parent 666f6baaca
commit 26f1aa4db5
3 changed files with 37 additions and 35 deletions

View file

@ -177,9 +177,7 @@
putSession: function(identifier, record) { putSession: function(identifier, record) {
if (identifier === null || identifier === undefined) if (identifier === null || identifier === undefined)
throw new Error("Tried to put session for undefined/null key"); throw new Error("Tried to put session for undefined/null key");
return new Promise(function(resolve) { return textsecure.storage.sessions.putSessionsForDevice(identifier, record);
resolve(textsecure.storage.sessions.putSessionsForDevice(identifier, record));
});
} }
}; };

View file

@ -38111,24 +38111,26 @@ axolotlInternal.RecipientRecord = function() {
}, },
putSessionsForDevice: function(encodedNumber, record) { putSessionsForDevice: function(encodedNumber, record) {
var number = textsecure.utils.unencodeNumber(encodedNumber)[0]; return Promise.resolve((function() {
var deviceId = textsecure.utils.unencodeNumber(encodedNumber)[1]; var number = textsecure.utils.unencodeNumber(encodedNumber)[0];
var deviceId = textsecure.utils.unencodeNumber(encodedNumber)[1];
var sessions = textsecure.storage.get("sessions" + number); var sessions = textsecure.storage.get("sessions" + number);
if (sessions === undefined) if (sessions === undefined)
sessions = {}; sessions = {};
sessions[deviceId] = record; sessions[deviceId] = record;
textsecure.storage.put("sessions" + number, sessions); textsecure.storage.put("sessions" + number, sessions);
var device = textsecure.storage.devices.getDeviceObject(encodedNumber); var device = textsecure.storage.devices.getDeviceObject(encodedNumber);
if (device === undefined) { if (device === undefined) {
var identityKey = textsecure.storage.devices.getIdentityKeyForNumber(number); var identityKey = textsecure.storage.devices.getIdentityKeyForNumber(number);
device = { encodedNumber: encodedNumber, device = { encodedNumber: encodedNumber,
//TODO: Remove this duplication //TODO: Remove this duplication
identityKey: identityKey identityKey: identityKey
}; };
} }
return textsecure.storage.devices.saveDeviceObject(device); return textsecure.storage.devices.saveDeviceObject(device);
})());
}, },
// Use textsecure.storage.devices.removeIdentityKeyForNumber (which calls this) instead // Use textsecure.storage.devices.removeIdentityKeyForNumber (which calls this) instead

View file

@ -40,24 +40,26 @@
}, },
putSessionsForDevice: function(encodedNumber, record) { putSessionsForDevice: function(encodedNumber, record) {
var number = textsecure.utils.unencodeNumber(encodedNumber)[0]; return Promise.resolve((function() {
var deviceId = textsecure.utils.unencodeNumber(encodedNumber)[1]; var number = textsecure.utils.unencodeNumber(encodedNumber)[0];
var deviceId = textsecure.utils.unencodeNumber(encodedNumber)[1];
var sessions = textsecure.storage.get("sessions" + number); var sessions = textsecure.storage.get("sessions" + number);
if (sessions === undefined) if (sessions === undefined)
sessions = {}; sessions = {};
sessions[deviceId] = record; sessions[deviceId] = record;
textsecure.storage.put("sessions" + number, sessions); textsecure.storage.put("sessions" + number, sessions);
var device = textsecure.storage.devices.getDeviceObject(encodedNumber); var device = textsecure.storage.devices.getDeviceObject(encodedNumber);
if (device === undefined) { if (device === undefined) {
var identityKey = textsecure.storage.devices.getIdentityKeyForNumber(number); var identityKey = textsecure.storage.devices.getIdentityKeyForNumber(number);
device = { encodedNumber: encodedNumber, device = { encodedNumber: encodedNumber,
//TODO: Remove this duplication //TODO: Remove this duplication
identityKey: identityKey identityKey: identityKey
}; };
} }
return textsecure.storage.devices.saveDeviceObject(device); return textsecure.storage.devices.saveDeviceObject(device);
})());
}, },
// Use textsecure.storage.devices.removeIdentityKeyForNumber (which calls this) instead // Use textsecure.storage.devices.removeIdentityKeyForNumber (which calls this) instead