Bug fixes and code refactoring

This commit is contained in:
sairaj mote 2023-10-16 20:07:58 +05:30
parent dd93f05a5b
commit 5e4b9e9803
5 changed files with 319 additions and 311 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -61,7 +61,7 @@
} }
}); });
var directConnID, groupConnID = {}, var directConnID = [], groupConnID = {},
pipeConnID = {}; pipeConnID = {};
messenger.conn = {}; messenger.conn = {};
Object.defineProperties(messenger.conn, { Object.defineProperties(messenger.conn, {
@ -324,6 +324,7 @@
if (unparsed.message instanceof Object && "secret" in unparsed.message) if (unparsed.message instanceof Object && "secret" in unparsed.message)
unparsed.message = floDapps.user.decrypt(unparsed.message); unparsed.message = floDapps.user.decrypt(unparsed.message);
let vc = unparsed.vectorClock; let vc = unparsed.vectorClock;
console.debug(unparsed);
switch (unparsed.type) { switch (unparsed.type) {
case "MESSAGE": { //process as message case "MESSAGE": { //process as message
let dm = { let dm = {
@ -332,6 +333,7 @@
category: "received", category: "received",
message: encrypt(unparsed.message) message: encrypt(unparsed.message)
} }
console.debug(dm, `${dm.floID}|${vc}`);
compactIDB.addData("messages", Object.assign({}, dm), `${dm.floID}|${vc}`) compactIDB.addData("messages", Object.assign({}, dm), `${dm.floID}|${vc}`)
_loaded.chats[dm.floID] = parseInt(vc) _loaded.chats[dm.floID] = parseInt(vc)
compactIDB.writeData("chats", parseInt(vc), dm.floID) compactIDB.writeData("chats", parseInt(vc), dm.floID)
@ -431,9 +433,9 @@
} }
function requestDirectInbox() { function requestDirectInbox() {
if (directConnID) { //close existing request connection (if any) if (directConnID.length) { //close existing request connection (if any)
floCloudAPI.closeRequest(directConnID); directConnID.forEach(id => floCloudAPI.closeRequest(id));
directConnID = undefined; directConnID = [];
} }
const parseData = processData.direct(); const parseData = processData.direct();
let callbackFn = function (dataSet, error) { let callbackFn = function (dataSet, error) {
@ -464,12 +466,20 @@
UI.direct(newInbox) UI.direct(newInbox)
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const promises = [
floCloudAPI.requestApplicationData(null, { floCloudAPI.requestApplicationData(null, {
receiverID: user.id, receiverID: user.id,
lowerVectorClock: _loaded.appendix.lastReceived + 1, lowerVectorClock: _loaded.appendix.lastReceived + 1,
callback: callbackFn callback: callbackFn
}).then(conn_id => { }),
directConnID = conn_id; floCloudAPI.requestApplicationData(null, {
receiverID: floEthereum.ethAddressFromCompressedPublicKey(user.public),
lowerVectorClock: _loaded.appendix.lastReceived + 1,
callback: callbackFn
})
]
Promise.all(promises).then(connectionIds => {
directConnID = [...directConnID, ...connectionIds];
resolve("Direct Inbox connected"); resolve("Direct Inbox connected");
}).catch(error => reject(error)) }).catch(error => reject(error))
}) })

File diff suppressed because one or more lines are too long