refactor: fix cast warning

This commit is contained in:
2026-07-31 21:36:21 +02:00
parent 4e4b307275
commit b2b8fcf92f
5 changed files with 6 additions and 14 deletions
@@ -37,16 +37,8 @@ abstract class GameEventManager(
return this return this
} }
protected fun <G : Game> Game.isStatusOrFail( protected inline fun <reified G : Game> Game.isStatusOrFail(message: String): G =
kClass: KClass<G>, this as? G ?: throw CommandException(message)
message: String,
): G {
if (kClass.isInstance(this)) {
return this as G
} else {
throw CommandException(message)
}
}
protected fun <T> retry( protected fun <T> retry(
mapAttempts: Int = 5, mapAttempts: Int = 5,
@@ -20,7 +20,7 @@ class JoinTheGameHandler(
retry { retry {
command command
.getGame() .getGame()
.isStatusOrFail(GameCreated::class, "The game is started") .isStatusOrFail<GameCreated>("The game is started")
.userJoinTheGame( .userJoinTheGame(
userId = command.userId, userId = command.userId,
name = user.username, name = user.username,
@@ -16,7 +16,7 @@ class PlayCardHandler(
override fun handle(command: PlayCardCommand) { override fun handle(command: PlayCardCommand) {
command command
.getGame() .getGame()
.isStatusOrFail(GameStarted::class, "The game is not started") .isStatusOrFail<GameStarted>("The game is not started")
.playTheCard( .playTheCard(
card = command.payload.card, card = command.payload.card,
playerId = command.payload.playerId, playerId = command.payload.playerId,
@@ -16,7 +16,7 @@ class ReadyToPlayHandler(
override fun handle(command: ReadyToPlayCommand) { override fun handle(command: ReadyToPlayCommand) {
command command
.getGame() .getGame()
.isStatusOrFail(GameCreated::class, "The game is started") .isStatusOrFail<GameCreated>("The game is started")
.setReadyPlayer(command.payload.playerId) .setReadyPlayer(command.payload.playerId)
.saveEvents() .saveEvents()
.publishEvents() .publishEvents()
@@ -18,7 +18,7 @@ class TakeCartFromDrawPileHandler(
override fun handle(command: TakeCartFromDrawPileCommand) { override fun handle(command: TakeCartFromDrawPileCommand) {
command command
.getGame() .getGame()
.isStatusOrFail(GameStarted::class, "The game is not started") .isStatusOrFail<GameStarted>("The game is not started")
.playerTakeCartFromDrawPile(command.payload.playerId, 1) .playerTakeCartFromDrawPile(command.payload.playerId, 1)
.saveEvents() .saveEvents()
.publishEvents() .publishEvents()