Skip to content

Commit e58e4af

Browse files
committed
fix: return error if unable to lock
1 parent f268332 commit e58e4af

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

apps/matching-service/handlers/responses.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func sendTimeoutResponse(ws *websocket.Conn) {
1818
}
1919
}
2020

21-
func sendRejectionResponse(ws *websocket.Conn) {
21+
func sendDuplicateUserRejectionResponse(ws *websocket.Conn) {
2222
if err := ws.WriteJSON(models.MatchRejected{
2323
Type: "match_rejected",
2424
Message: "You are already in a matchmaking queue. Please disconnect before reconnecting.",
@@ -27,6 +27,15 @@ func sendRejectionResponse(ws *websocket.Conn) {
2727
}
2828
}
2929

30+
func sendDefaultRejectionResponse(ws *websocket.Conn) {
31+
if err := ws.WriteJSON(models.MatchRejected{
32+
Type: "match_rejected",
33+
Message: "An unexpected error occurred. Please try again later.",
34+
}); err != nil {
35+
log.Printf("write error: %v", err)
36+
}
37+
}
38+
3039
// Send message to matched user
3140
func sendMatchFoundResponse(ws *websocket.Conn, username string, result models.MatchQuestionFound) {
3241
if err := ws.WriteJSON(result); err != nil {

apps/matching-service/handlers/websocket.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,11 @@ func waitForResult(ws *websocket.Conn, userCtx, timeoutCtx context.Context, matc
124124
if !ok {
125125
return
126126
}
127+
log.Printf("Error occured performing matching: %v", err)
127128
if errors.Is(err, models.ExistingUserError) {
128-
sendRejectionResponse(ws)
129+
sendDuplicateUserRejectionResponse(ws)
129130
} else {
131+
sendDefaultRejectionResponse(ws)
130132
cleanUpUser(username)
131133
}
132134
return

apps/matching-service/processes/performmatches.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ func PerformMatching(rdb *redis.Client, matchRequest models.MatchRequest, ctx co
2424
// Obtain lock with retry
2525
lock, err := servers.ObtainRedisLock(ctx)
2626
if err != nil {
27+
errorChan <- err
2728
return
2829
}
2930
defer lock.Release(ctx)

0 commit comments

Comments
 (0)