dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 3e56927b2f51c326e8b70d5026a4151109d1adbe
parent f6c8b72f59369134e3097c382efc3f8fec18a5f7
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 18 Dec 2023 15:15:55 -0500

cleanup

Diffstat:
Mpkg/database/tableUsers.go | 9+++++++++
Mpkg/web/handlers/handlers.go | 9++++++---
2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/pkg/database/tableUsers.go b/pkg/database/tableUsers.go @@ -682,6 +682,15 @@ func (d *DkfDB) GetUserBalances(userID UserID) (xmrBalance Piconero, chipsTest P return tmp.XmrBalance, tmp.ChipsTest, err } +func (d *DkfDB) DecrUserBalance(userID UserID, isTest bool, amount PokerChip) (err error) { + if isTest { + err = d.db.Exec(`UPDATE users SET chips_test = chips_test - ? WHERE id = ?`, amount, userID).Error + } else { + err = d.db.Exec(`UPDATE users SET xmr_balance = xmr_balance - ? WHERE id = ?`, amount.ToPiconero(), userID).Error + } + return +} + func (u *User) GetXmrBalance(db *DkfDB) (amount Piconero, err error) { var tmp struct{ XmrBalance Piconero } err = db.db.Table("users").Select("xmr_balance").First(&tmp, "id = ?", u.ID).Error diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -879,9 +879,12 @@ func PokerHomeHandler(c echo.Context) error { return errors.New("buy-in exceed table max buy-in") } tableAccount.Amount += playerBuyIn - authUser.IncrUserChips(pokerTable.IsTest, playerBuyIn, true) - authUser.DoSave(tx) - tableAccount.DoSave(tx) + if err := tx.DecrUserBalance(authUserID, pokerTable.IsTest, playerBuyIn); err != nil { + return errors.New("failed to update user's balance") + } + if err := tableAccount.Save(tx); err != nil { + return errors.New("failed to update user's table account") + } return nil }); err != nil { data.ErrorTable = err.Error()