refactor: query optimization

This commit is contained in:
José Oliveira 2021-05-14 01:16:51 +01:00 committed by Josh Harvey
parent 3846d7f9d7
commit da6076b359

View file

@ -511,17 +511,31 @@ function plugins (settings, deviceId) {
})
}
function recordTradeAndTx (tradeId, internalTxIdList, dbTx) {
dbTx.batch(_.map(internalTxId => {
async function recordTradeAndTx (tradeId, internalTxIdList, dbTx) {
const columnSetCashin = new pgp.helpers.ColumnSet(['cash_in_tx_id', 'trade_id'], { table: 'cashin_tx_trades' })
const columnSetCashout = new pgp.helpers.ColumnSet(['cash_out_tx_id', 'trade_id'], { table: 'cashout_tx_trades' })
let cashinTxs = []
let cashoutTxs = []
let queries = []
_.map(internalTxId => {
let entry = { trade_id: tradeId }
if (internalTxId.direction === 'cashIn') {
entry.cash_in_tx_id = internalTxId.txId
return dbTx.none(pgp.helpers.insert(entry, null, 'cashin_tx_trades'))
}
cashinTxs.push(entry)
} else {
entry.cash_out_tx_id = internalTxId.txId
return dbTx.none(pgp.helpers.insert(entry, null, 'cashout_tx_trades'))
cashoutTxs.push(entry)
}
}, internalTxIdList)
)
if (!_.isEmpty(cashinTxs)) {
const query = pgp.helpers.insert(cashinTxs, columnSetCashin)
queries.push(dbTx.none(query))
}
if (!_.isEmpty(cashoutTxs)) {
const query = pgp.helpers.insert(cashoutTxs, columnSetCashout)
queries.push(dbTx.none(query))
}
return Promise.all(queries)
}
function convertBigNumFields (obj) {