dkforest

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

commit 9eb920304a4ac70b992ea8d46645cf1c4f3581fd
parent 731a7aa067799b9ad5a98ab8d748381236562260
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sun, 17 Dec 2023 05:37:05 -0500

cleanup

Diffstat:
Mpkg/web/handlers/poker/poker.go | 45++++++++++++++++++++++++---------------------
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()})