dkforest

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

commit f8abed4a99b2900d4755a9f468605a6456c09204
parent 3f55dc9088870ba43d5d7d6da0de14728a7a66e9
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Tue, 12 Dec 2023 15:50:50 -0500

db transaction

Diffstat:
Mpkg/database/database.go | 8++++++++
Mpkg/web/handlers/poker/poker.go | 16+++++++++-------
2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/pkg/database/database.go b/pkg/database/database.go @@ -335,3 +335,11 @@ func Backup() error { return bk.Finish() } + +func (d *DkfDB) Begin() *DkfDB { + return &DkfDB{db: d.db.Begin()} +} + +func (d *DkfDB) Commit() *DkfDB { + return &DkfDB{db: d.db.Commit()} +} diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -893,23 +893,25 @@ END: } else if len(playersGain) > 1 { winnerHand = "Split pot" } - pokerTable, _ := db.GetPokerTableBySlug(roomID) + tx := db.Begin() + pokerTable, _ := tx.GetPokerTableBySlug(roomID) for _, el := range playersGain { newLogEvent(g, roomLogsTopic, fmt.Sprintf("Winner #%d: %s %s -> %d", el.Group, el.Player.Username, el.HandStr, el.Gain)) - user, _ := db.GetUserByUsername(database.Username(el.Player.Username)) - account, _ := db.GetPokerTableAccount(user.ID, pokerTable.ID) + user, _ := tx.GetUserByUsername(database.Username(el.Player.Username)) + account, _ := tx.GetPokerTableAccount(user.ID, pokerTable.ID) account.Amount += int64(el.Gain) account.AmountBet = 0 - account.DoSave(db) + account.DoSave(tx) winnersStr += el.Player.Username + " " el.Player.Cash += el.Gain } for _, p := range g.Ongoing.Players { - user, _ := db.GetUserByUsername(database.Username(p.Username)) - account, _ := db.GetPokerTableAccount(user.ID, pokerTable.ID) + user, _ := tx.GetUserByUsername(database.Username(p.Username)) + account, _ := tx.GetPokerTableAccount(user.ID, pokerTable.ID) account.AmountBet = 0 - account.DoSave(db) + account.DoSave(tx) } + tx.Commit() g.Ongoing.MainPot.Store(0)