Minor Syntax improvements

- Replaced convertDateToString() to new Date() as SQL queries accepts js-object Date
- Pass nested array for bulk insert in backup-restore
This commit is contained in:
sairajzero 2022-10-08 19:13:50 +05:30
parent a193291bd7
commit 5344b79cdb
5 changed files with 14 additions and 24 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@
/args/param.json /args/param.json
/args/keys*.json /args/keys*.json
*test* *test*
*.tmp*

View File

@ -83,7 +83,7 @@ const requestInstance = {
checksum_count_down: 0 checksum_count_down: 0
}; };
requestInstance.open = function(ws = null) { requestInstance.open = function (ws = null) {
const self = this; const self = this;
//Check if there is an active request //Check if there is an active request
if (self.request) { if (self.request) {
@ -109,7 +109,7 @@ requestInstance.open = function(ws = null) {
}).catch(error => console.error(error)) }).catch(error => console.error(error))
} }
requestInstance.close = function() { requestInstance.close = function () {
const self = this; const self = this;
if (self.onetime) if (self.onetime)
self.ws.close(); self.ws.close();
@ -252,8 +252,8 @@ function storeBackupData(cache_promises, checksum_ref) {
resolve(true); resolve(true);
else else
verifyChecksum(checksum_ref) verifyChecksum(checksum_ref)
.then(result => resolve(result)) .then(result => resolve(result))
.catch(error => reject(error)) .catch(error => reject(error))
}); });
}) })
}) })
@ -276,7 +276,7 @@ function storeBackupData(cache_promises, checksum_ref) {
} }
storeBackupData.commit = function(data, result) { storeBackupData.commit = function (data, result) {
let promises = []; let promises = [];
for (let i = 0; i < data.length; i++) for (let i = 0; i < data.length; i++)
switch (result[i].status) { switch (result[i].status) {
@ -319,16 +319,15 @@ function updateTableData(table, data) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!data.length) if (!data.length)
return resolve(null); return resolve(null);
let cols = Object.keys(data[0]), let cols = Object.keys(data[0]);
_mark = "(" + Array(cols.length).fill('?') + ")"; let values = data.map(r => cols.map(c => validateValue(r[c])));
let values = data.map(r => cols.map(c => validateValue(r[c]))).flat(); let statement = `INSERT INTO ${table} (${cols}) VALUES ?` +
let statement = `INSERT INTO ${table} (${cols}) VALUES ${Array(data.length).fill(_mark)}` +
" ON DUPLICATE KEY UPDATE " + cols.map(c => `${c}=VALUES(${c})`).join(); " ON DUPLICATE KEY UPDATE " + cols.map(c => `${c}=VALUES(${c})`).join();
DB.query(statement, values).then(_ => resolve(true)).catch(error => reject(error)); DB.query(statement, [values]).then(_ => resolve(true)).catch(error => reject(error));
}) })
} }
const validateValue = val => (typeof val === "string" && /\.\d{3}Z$/.test(val)) ? global.convertDateToString(val) : val; const validateValue = val => (typeof val === "string" && /\.\d{3}Z$/.test(val)) ? new Date(val) : val;
function verifyChecksum(checksum_ref) { function verifyChecksum(checksum_ref) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -399,7 +398,7 @@ function verifyHash(hashes) {
//Data to be deleted (incorrect data will be added by resync) //Data to be deleted (incorrect data will be added by resync)
let id_end = result[t].value[1].map(i => i * HASH_N_ROW); //eg if i=2 AND H_R_C = 5 then id_end = 2 * 5 = 10 (ie, range 6-10) let id_end = result[t].value[1].map(i => i * HASH_N_ROW); //eg if i=2 AND H_R_C = 5 then id_end = 2 * 5 = 10 (ie, range 6-10)
Promise.allSettled(id_end.map(i => Promise.allSettled(id_end.map(i =>
DB.query(`DELETE FROM ${tables[t]} WHERE id BETWEEN ${i - HASH_N_ROW + 1} AND ${i}`))) //eg, i - HASH_N_ROW + 1 = 10 - 5 + 1 = 6 DB.query(`DELETE FROM ${tables[t]} WHERE id BETWEEN ${i - HASH_N_ROW + 1} AND ${i}`))) //eg, i - HASH_N_ROW + 1 = 10 - 5 + 1 = 6
.then(_ => null); .then(_ => null);
} else } else
console.error(result[t].reason); console.error(result[t].reason);

View File

@ -195,7 +195,7 @@ function processOrders(seller_best, buyer_best, asset, cur_rate, quantity) {
})); }));
txQueries.push([ txQueries.push([
"INSERT INTO TradeTransactions (seller, buyer, asset, quantity, unitValue, tx_time, txid) VALUES (?, ?, ?, ?, ?, ?, ?)", "INSERT INTO TradeTransactions (seller, buyer, asset, quantity, unitValue, tx_time, txid) VALUES (?, ?, ?, ?, ?, ?, ?)",
[seller_best.floID, buyer_best.floID, asset, quantity, cur_rate, global.convertDateToString(time), hash] [seller_best.floID, buyer_best.floID, asset, quantity, cur_rate, new Date(time), hash]
]); ]);
return txQueries; return txQueries;

View File

@ -325,7 +325,7 @@ function transferToken(sender, receivers, token) {
})); }));
txQueries.push([ txQueries.push([
"INSERT INTO TransferTransactions (sender, receiver, token, totalAmount, tx_time, txid) VALUE (?, ?, ?, ?, ?, ?)", "INSERT INTO TransferTransactions (sender, receiver, token, totalAmount, tx_time, txid) VALUE (?, ?, ?, ?, ?, ?)",
[sender, JSON.stringify(receivers), token, totalAmount, global.convertDateToString(time), hash] [sender, JSON.stringify(receivers), token, totalAmount, new Date(time), hash]
]); ]);
DB.transaction(txQueries) DB.transaction(txQueries)
.then(result => resolve(hash)) .then(result => resolve(hash))

View File

@ -2,16 +2,6 @@
//fetch for node js (used in floBlockchainAPI.js) //fetch for node js (used in floBlockchainAPI.js)
global.fetch = require("node-fetch"); global.fetch = require("node-fetch");
global.convertDateToString = function(timestamp) {
let date = new Date(timestamp);
return date.getFullYear() + '-' +
('00' + (date.getMonth() + 1)).slice(-2) + '-' +
('00' + date.getDate()).slice(-2) + ' ' +
('00' + date.getHours()).slice(-2) + ':' +
('00' + date.getMinutes()).slice(-2) + ':' +
('00' + date.getSeconds()).slice(-2);
}
//Set browser paramaters from param.json (or param-default.json) //Set browser paramaters from param.json (or param-default.json)
var param; var param;
try { try {