commit 9eb920304a4ac70b992ea8d46645cf1c4f3581fd
parent 731a7aa067799b9ad5a98ab8d748381236562260
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sun, 17 Dec 2023 05:37:05 -0500
cleanup
Diffstat:
1 file changed, 24 insertions(+), 21 deletions(-)
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -418,11 +418,7 @@ func (g *PokerGame) UnSitPlayer1(seatedPlayer *SeatedPlayer) error {
return err
}
tx := g.DB.Begin()
- if g.PokerTableIsTest {
- user.ChipsTest += account.Amount
- } else {
- user.XmrBalance += account.Amount.ToPiconero()
- }
+ incrUserChips(&user, g.PokerTableIsTest, account.Amount, false)
account.Amount = 0
account.DoSave(tx)
user.DoSave(tx)
@@ -1433,11 +1429,7 @@ func Refund(db *database.DkfDB) {
tx := db.Begin()
for _, account := range accounts {
if user, err := tx.GetUserByID(account.UserID); err == nil {
- if account.PokerTable.IsTest {
- user.ChipsTest += account.Amount + account.AmountBet
- } else {
- user.XmrBalance += account.Amount.ToPiconero() + account.AmountBet.ToPiconero()
- }
+ incrUserChips(&user, account.PokerTable.IsTest, account.Amount+account.AmountBet, false)
account.Amount = 0
account.AmountBet = 0
account.DoSave(tx)
@@ -1491,6 +1483,26 @@ func PokerUnSitHandler(c echo.Context) error {
return c.HTML(http.StatusOK, html)
}
+func getUserChips(user *database.User, isTest bool) database.PokerChip {
+ return utils.Ternary(isTest, user.ChipsTest, user.XmrBalance.ToPokerChip())
+}
+
+func incrUserChips(user *database.User, isTest bool, v database.PokerChip, decrement bool) {
+ if decrement {
+ if isTest {
+ user.ChipsTest -= v
+ } else {
+ user.XmrBalance -= v.ToPiconero()
+ }
+ } else {
+ if isTest {
+ user.ChipsTest += v
+ } else {
+ user.XmrBalance += v.ToPiconero()
+ }
+ }
+}
+
func PokerSitHandler(c echo.Context) error {
db := c.Get("database").(*database.DkfDB)
html := hutils.HtmlCssReset + `<form method="post"><button>Sit</button></form>`
@@ -1533,23 +1545,14 @@ func PokerSitHandler(c echo.Context) error {
PokerPubSub.Pub(roomUserTopic, ErrorMsgEvent{Message: fmt.Sprintf("buy-in too high; max buy in: %d", tableMaxBuyIn)})
return c.HTML(http.StatusOK, html)
}
- var userChips database.PokerChip
- if pokerTable.IsTest {
- userChips = authUser.ChipsTest
- } else {
- userChips = authUser.XmrBalance.ToPokerChip()
- }
+ userChips := getUserChips(authUser, pokerTable.IsTest)
totalChips := userChips + tableAccount.Amount
if totalChips < playerBuyIn {
PokerPubSub.Pub(roomUserTopic, ErrorMsgEvent{Message: fmt.Sprintf("Not enough chips for the desired buy-in; want: %d; have: %d", playerBuyIn, totalChips)})
return c.HTML(http.StatusOK, html)
}
needed := playerBuyIn - tableAccount.Amount
- if pokerTable.IsTest {
- authUser.ChipsTest -= needed
- } else {
- authUser.XmrBalance -= needed.ToPiconero()
- }
+ incrUserChips(authUser, pokerTable.IsTest, needed, true)
tableAccount.Amount += needed
if err := g.SitPlayer(authUser, pos, tableAccount.Amount); err != nil {
PokerPubSub.Pub(roomUserTopic, ErrorMsgEvent{Message: err.Error()})