commit f8abed4a99b2900d4755a9f468605a6456c09204
parent 3f55dc9088870ba43d5d7d6da0de14728a7a66e9
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Tue, 12 Dec 2023 15:50:50 -0500
db transaction
Diffstat:
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)