commit a3fd322f2b4ac77c8c60366a03156df3953eeb32
parent bb49a83653aa6dcf651488610cad0a39036cade5
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 8 Dec 2023 06:43:01 -0500
cleanup
Diffstat:
2 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/pkg/web/handlers/poker/events.go b/pkg/web/handlers/poker/events.go
@@ -60,5 +60,4 @@ type PokerSeatTakenEvent struct {
}
type PokerSeatLeftEvent struct {
- Idx int
}
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -281,6 +281,23 @@ func (g *PokerGame) incrDealerIdx() {
g.underTheGunIdx = (int(dealerIdx) + 3) % nbPlayers
}
+func (g *PokerGame) UnSitPlayer(authUser *database.User) error {
+ found := false
+ g.PlayersMtx.Lock()
+ for i, p := range g.Players {
+ if p != nil && p.Username == authUser.Username.String() {
+ g.Players[i] = nil
+ found = true
+ break
+ }
+ }
+ g.PlayersMtx.Unlock()
+ if !found {
+ return errors.New("player seat not found")
+ }
+ return nil
+}
+
func (g *PokerGame) SitPlayer(authUser *database.User, pos int) error {
g.PlayersMtx.Lock()
defer g.PlayersMtx.Unlock()
@@ -1026,21 +1043,9 @@ func PokerUnSitHandler(c echo.Context) error {
return c.NoContent(http.StatusNotFound)
}
if c.Request().Method == http.MethodPost {
- var idx int
- found := false
- g.PlayersMtx.Lock()
- for i, p := range g.Players {
- if p != nil && p.Username == authUser.Username.String() {
- g.Players[i] = nil
- idx = i
- found = true
- break
- }
- }
- g.PlayersMtx.Unlock()
- if found {
+ if err := g.UnSitPlayer(authUser); err == nil {
myTopic := "room_" + roomID
- PokerPubSub.Pub(myTopic, PokerSeatLeftEvent{Idx: idx + 1})
+ PokerPubSub.Pub(myTopic, PokerSeatLeftEvent{})
newLogEvent(g, roomLogsTopic, fmt.Sprintf("%s un-sit", authUser.Username.String()))
}
}