diff --git a/app-sync.js b/app-sync.js index b8c3d9d..0751f37 100644 --- a/app-sync.js +++ b/app-sync.js @@ -136,21 +136,7 @@ app.post('/sync', async (req, res) => { let responsePb = new SyncPb.SyncResponse(); responsePb.setMerkle(JSON.stringify(trie)); - for (let i = 0; i < newMessages.length; i++) { - let msg = newMessages[i]; - let envelopePb = new SyncPb.MessageEnvelope(); - let messagePb = new SyncPb.Message(); - - messagePb.setDataset(msg.dataset); - messagePb.setRow(msg.row); - messagePb.setColumn(msg.column); - messagePb.setValue(msg.value); - - envelopePb.setTimestamp(msg.timestamp); - envelopePb.setContent(messagePb.serializeBinary()); - - responsePb.addMessages(envelopePb); - } + newMessages.forEach(msg => responsePb.addMessages(msg)); res.set('Content-Type', 'application/actual-sync'); res.send(Buffer.from(responsePb.serializeBinary())); diff --git a/sync-full.js b/sync-full.js index fe1f2b7..cf5df9c 100644 --- a/sync-full.js +++ b/sync-full.js @@ -15,7 +15,7 @@ const sync = sequential(async function syncAPI(messages, since, fileId) { await actual.internal.send('load-budget', { id: fileId }); } - messages = messages.map(envPb => { + const messagesDeserialized = messages.map(envPb => { let timestamp = envPb.getTimestamp(); let msg = SyncPb.Message.deserializeBinary(envPb.getContent()); return { @@ -27,11 +27,23 @@ const sync = sequential(async function syncAPI(messages, since, fileId) { }; }); - let newMessages = await actual.internal.syncAndReceiveMessages(messages, since); + const newMessages = await actual.internal.syncAndReceiveMessages(messagesDeserialized, since); return { trie: actual.internal.timestamp.getClock().merkle, - newMessages: newMessages + newMessages: newMessages.map(msg => { + const envelopePb = new SyncPb.MessageEnvelope(); + + const messagePb = new SyncPb.Message(); + messagePb.setDataset(msg.dataset); + messagePb.setRow(msg.row); + messagePb.setColumn(msg.column); + messagePb.setValue(msg.value); + envelopePb.setTimestamp(msg.timestamp); + + envelopePb.setContent(messagePb.serializeBinary()); + return envelopePb; + }) }; });