commit ba0b837f1e2fdfa82d5f37edae28157e6dc7aba0
parent 2ebd3b9aab966440c292925b3c3f2d2d7c5bdcfb
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 13 Dec 2023 23:16:49 -0500
cleanup
Diffstat:
2 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/pkg/database/tableUsers.go b/pkg/database/tableUsers.go
@@ -672,3 +672,14 @@ func (u *User) GetImage() (image.Image, error) {
}
return b, nil
}
+
+func (u *User) GetXmrBalanceStagenet(db *DkfDB) (amount Piconero, err error) {
+ var tmp struct{ XmrBalanceStagenet Piconero }
+ err = db.db.Table("users").Select("xmr_balance_stagenet").First(&tmp, "id = ?", u.ID).Error
+ return tmp.XmrBalanceStagenet, err
+}
+
+func (u *User) IncrXmrBalanceStagenet(db *DkfDB, amount Piconero) (err error) {
+ err = db.db.Exec(`UPDATE users SET xmr_balance_stagenet = xmr_balance_stagenet + ? WHERE id = ?`, amount, u.ID).Error
+ return
+}
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -831,10 +831,18 @@ func PokerHomeHandler(c echo.Context) error {
}
tx := db.Begin()
- err = tx.DB().Exec(`UPDATE users SET xmr_balance_stagenet = xmr_balance_stagenet - ? WHERE id = ?`, withdrawAmount+houseFee+transactionFee, authUser.ID).Error
- var tmp struct{ XmrBalanceStagenet uint64 }
- tx.DB().Debug().Table("users").Select("xmr_balance_stagenet").First(&tmp, "id = ?", authUser.ID)
- if tmp.XmrBalanceStagenet < 0 {
+ if err = authUser.IncrXmrBalanceStagenet(db, (withdrawAmount+houseFee+transactionFee)*-1); err != nil {
+ data.Error = err.Error()
+ tx.Rollback()
+ return c.Render(http.StatusOK, "poker", data)
+ }
+ xmrBalanceStagenet, err := authUser.GetXmrBalanceStagenet(tx)
+ if err != nil {
+ data.Error = err.Error()
+ tx.Rollback()
+ return c.Render(http.StatusOK, "poker", data)
+ }
+ if xmrBalanceStagenet < 0 {
data.Error = "negative balance"
tx.Rollback()
return c.Render(http.StatusOK, "poker", data)