From fa84d5a65844602c7e97e9bf0e5a51befdebaf53 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 29 Apr 2020 20:59:05 -0700 Subject: update account balance properly after lightning payment --- lib/utils.js | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) (limited to 'lib/utils.js') diff --git a/lib/utils.js b/lib/utils.js index a861f8b7..cd1b3d69 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,8 +1,8 @@ const sequelize = require("sequelize"); const { Op } = sequelize; -getUser = async username => { - let user = await db.User.findOne({ +getUser = async (username, transaction) => { + let params = { include: [ { model: db.Account, @@ -14,11 +14,18 @@ getUser = async username => { } ], where: { username } - }); + }; + + if (transaction) { + params.lock = transaction.LOCK.UPDATE; + params.transaction = transaction; + } + + let user = await db.User.findOne(params); user = user.get({ plain: true }); - user.payments = await db.Payment.findAll({ + params = { order: [["id", "DESC"]], where: { user_id: user.id, @@ -35,13 +42,20 @@ getUser = async username => { model: db.Account, as: "account" } - }); + }; + + if (transaction) { + params.lock = transaction.LOCK.UPDATE; + params.transaction = transaction; + } + + user.payments = await db.Payment.findAll(params); return user; }; -getUserById = async id => { - let user = await db.User.findOne({ +getUserById = async (id, transaction) => { + let params = { include: [ { model: db.Account, @@ -53,11 +67,18 @@ getUserById = async id => { } ], where: { id } - }); + }; + + if (transaction) { + params.lock = transaction.LOCK.UPDATE; + params.transaction = transaction; + } + + let user = await db.User.findOne(params); user = user.get({ plain: true }); - user.payments = await db.Payment.findAll({ + params = { order: [["id", "DESC"]], where: { user_id: user.id, @@ -74,7 +95,14 @@ getUserById = async id => { model: db.Account, as: "account" } - }); + }; + + if (transaction) { + params.lock = transaction.LOCK.UPDATE; + params.transaction = transaction; + } + + user.payments = await db.Payment.findAll(params); return user; }; -- cgit v1.2.3