Merge pull request 'fix: delete orhpaned blackjack games' (!207) from fix-delete-completed-blackjack-games into main
All checks were successful
Release / Release (push) Successful in 58s
Release / Build Frontend Image (push) Successful in 29s
Release / Build Backend Image (push) Successful in 31s

Reviewed-on: #207
Reviewed-by: Jan K9f <jan@kjan.email>
This commit is contained in:
Phan Huy Tran 2025-05-21 07:54:01 +00:00
commit e4cd62cca4
No known key found for this signature in database
GPG key ID: 944223E4D46B7412

View file

@ -36,7 +36,7 @@ public class BlackJackService {
game.setState(getState(game));
deductBetFromBalance(user, betAmount);
return blackJackGameRepository.save(game);
return processGameBasedOnState(game);
}
@Transactional
@ -46,10 +46,9 @@ public class BlackJackService {
}
dealCardToPlayer(game);
updateGameStateAndBalance(game);
return blackJackGameRepository.save(game);
return processGameBasedOnState(game);
}
@Transactional
@ -61,7 +60,7 @@ public class BlackJackService {
dealCardsToDealerUntilMinimumScore(game);
determineWinnerAndUpdateBalance(game);
return blackJackGameRepository.save(game);
return processGameBasedOnState(game);
}
@Transactional
@ -89,9 +88,9 @@ public class BlackJackService {
@Transactional
public BlackJackGameEntity split(BlackJackGameEntity game) {
if (game.getState() != BlackJackState.IN_PROGRESS ||
game.getPlayerCards().size() != 2 ||
game.isSplit() ||
!game.getPlayerCards().get(0).getRank().equals(game.getPlayerCards().get(1).getRank())) {
game.getPlayerCards().size() != 2 ||
game.isSplit() ||
!game.getPlayerCards().get(0).getRank().equals(game.getPlayerCards().get(1).getRank())) {
return game;
}
@ -116,6 +115,15 @@ public class BlackJackService {
return blackJackGameRepository.save(game);
}
private BlackJackGameEntity processGameBasedOnState(BlackJackGameEntity game) {
if (game.getState() != BlackJackState.IN_PROGRESS) {
this.blackJackGameRepository.delete(game);
return game;
}
return blackJackGameRepository.save(game);
}
private BlackJackGameEntity refreshGameState(BlackJackGameEntity game) {
return blackJackGameRepository.findById(game.getId()).orElse(game);
}