From 4bf972b99591b5a61efbc581f93ef2335db78575 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Oliveira?= Date: Tue, 30 Mar 2021 14:42:16 +0100 Subject: [PATCH] fix: use database tx to chain queries --- lib/plugins.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/plugins.js b/lib/plugins.js index 5157adfa..26c8924a 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -511,15 +511,15 @@ function plugins (settings, deviceId) { }) } - function recordTradeAndTx (tradeId, internalTxIdList) { + function recordTradeAndTx (tradeId, internalTxIdList, dbTx) { _.map(internalTxId => { let entry = { trade_id: tradeId } if (internalTxId.direction === 'cashIn') { entry.cash_in_tx_id = internalTxId.txId - return db.none(pgp.helpers.insert(entry, null, 'cashin_tx_trades')) + return dbTx.none(pgp.helpers.insert(entry, null, 'cashin_tx_trades')) } entry.cash_out_tx_id = internalTxId.txId - return db.none(pgp.helpers.insert(entry, null, 'cashout_tx_trades')) + return dbTx.none(pgp.helpers.insert(entry, null, 'cashout_tx_trades')) }, internalTxIdList) } @@ -553,8 +553,12 @@ function plugins (settings, deviceId) { ) const tradeEntry = massage(_tradeEntry, error) const sql = pgp.helpers.insert(tradeEntry, null, 'trades') + 'RETURNING *' - return db.oneOrNone(sql) - .then(newTrade => recordTradeAndTx(newTrade.id, _tradeEntry.internalTxIdList)) + db.tx(async t => { + const newTrade = await t.oneOrNone(sql) + return recordTradeAndTx(newTrade.id, _tradeEntry.internalTxIdList, t) + }) + .then(data => data) + .catch(error => error) } function sendMessage (rec) {