Commit Graph

76 Commits

Author SHA1 Message Date
flecomte 3b9616aa67 refactor testApplication 2025-04-14 23:40:03 +02:00
flecomte 097981112d add postgresql docker 2025-04-14 23:40:03 +02:00
flecomte d02b2bb049 add traefik 2025-04-14 23:40:02 +02:00
flecomte 442379dc49 fix and improve ProjectionSnapshotRepositoryInRedis 2025-04-14 23:40:02 +02:00
flecomte 22792a0427 create GameStateRepositoryInRedis 2025-04-14 23:40:01 +02:00
flecomte 9670a000f0 create ProjectionSnapshotRepositoryInRedis 2025-04-14 23:40:00 +02:00
flecomte 23b304fdbd create interface ProjectionSnapshotRepository 2025-04-14 23:40:00 +02:00
flecomte dd7cfb943e update jedis config 2025-04-14 23:39:59 +02:00
flecomte 6ddffa4f41 use redis/redis-stack instead of redis/redis-stack-server 2025-04-14 23:39:59 +02:00
flecomte dee0d32d28 Move SnapshotConfig class 2025-04-14 23:39:58 +02:00
flecomte 8e732b0f9e Configure redis for ktor/koin 2025-04-14 23:39:58 +02:00
flecomte 6d2043d9fe Install redis with docker 2025-04-14 23:39:57 +02:00
flecomte c28bc00679 Create PlayerNotificationListenerTest 2025-04-14 23:39:57 +02:00
flecomte c762f31449 Move tests 2025-04-14 23:39:56 +02:00
flecomte 8c1eabb9f5 Projection was now built on listener events
Create ProjectionBus and use it with listeners
add EventStream::getByVersion
2025-04-14 23:39:56 +02:00
flecomte 908cc888ad Change EventBus to Bus 2025-04-14 23:39:55 +02:00
flecomte cd320b31da Move projection interface 2025-04-14 23:39:54 +02:00
flecomte b91c45100d A new snapshot is always created after new event 2025-04-14 23:39:54 +02:00
flecomte 12af6604d6 create a websocket route to create and join a game 2025-04-14 23:39:53 +02:00
flecomte c3155da23c Create route to list all the games 2025-04-14 23:39:52 +02:00
flecomte 8074881d57 Move GameStateRepository 2025-04-14 23:39:51 +02:00
flecomte 1a96c68521 Add AggregateID for the PlayerNotificationEventListener and CommandHandler 2025-04-14 23:39:50 +02:00
flecomte 0374712824 add test on GameState for canBePlayThisCard & isReady 2025-04-14 23:39:50 +02:00
flecomte 1d70f73061 restrict numeric card number to 0..9 2025-04-14 23:39:49 +02:00
flecomte 48ac4156bd change cardOnCurrentStack on lastCardPlayer 2025-04-14 23:39:49 +02:00
flecomte 3434d43fc2 move secrete into config file 2025-04-14 23:39:48 +02:00
flecomte 4adfc6467c Split configs 2025-04-14 23:39:48 +02:00
flecomte 769d104040 Move file and add interface to improve Archi Hexa 2025-04-14 23:39:47 +02:00
flecomte 4739495980 Rename file DeclareWebSocketsGameRoute 2025-04-14 23:39:47 +02:00
flecomte fb9a8e2384 Rename class GameCommandRouteWebSocket 2025-04-14 23:39:46 +02:00
flecomte 804ccd785e Add MDC to log4j 2025-04-14 23:39:46 +02:00
flecomte ca95344ca9 Send Success notification when Command is executed
extract Action of the Commands
simplify somme classes
2025-04-14 23:39:45 +02:00
flecomte a2f93d4edd rename GameCommandRunner to GameCommandActionRunner 2025-04-14 23:39:45 +02:00
flecomte 7d06babdeb Une exception on the command.run to notify the player instead on direct send 2025-04-14 23:39:44 +02:00
flecomte 5a5e7ab7cf update java version 2025-04-14 23:39:44 +02:00
flecomte b4234a9b37 update ktlint rules 2025-04-14 23:39:44 +02:00
flecomte 492981bed0 Split EventStream and EventStore 2025-04-14 23:39:43 +02:00
flecomte 23cc3e3567 Une modulo to create snapshot
fix removeSnapshot
2025-04-14 23:39:43 +02:00
flecomte 20a15f0182 update gradle versions 2025-04-14 23:39:42 +02:00
flecomte 91767e3747 Improve concurrence of ProjectionSnapshotRepositoryInMemory and GameEventHandler 2025-04-14 23:39:42 +02:00
flecomte 286dedac76 extract projection snapshot logic
implement GameStateRepositoryTest
add lambda to the GameEventHandler.handle{} to set the version

add VersionBuilder
add version to the events
add creation date to the events
rename gameId to aggregateId
add EventHandler interface
2025-04-14 23:39:41 +02:00
flecomte d5b033e731 change validation on builder to error log 2025-04-14 23:39:41 +02:00
flecomte 28075feff2 create GameCommandRunner to extract business logic 2025-04-14 23:39:41 +02:00
flecomte a2756d7fdb Rename listeners 2025-04-14 23:39:40 +02:00
flecomte c84aa7e0c1 CommandStreamChannel block the duplicate call
add GameCommandHandlerTest
Create a CommandStreamChannelBuilder to inject maxCacheTime
Add missing empty disabled test
fix EventStreamInMemory.readAll
2025-04-14 23:39:40 +02:00
flecomte 0fbea7903a create a FrameChannelConverter 2025-04-14 23:39:39 +02:00
flecomte c84562afe6 Move serializer 2025-04-14 23:39:39 +02:00
flecomte 6028846828 Improve concurrency
Fix GameState.currentPlayerTurn and nextPlayer
Add ItsTheTurnOfNotification
Improve test
2025-04-14 23:39:38 +02:00
flecomte 3a685496fd Add GameStateRepository.getUntil(event)
Add Cache and Snapshot to the GameStateRepository
Add eventId on events
2025-04-14 23:39:38 +02:00
flecomte 19e425d684 Create GameStateRepository
Use GameState.apply() to build Projection
Create GameEventHandler
Add PlayerWinEvent
2025-04-14 23:39:38 +02:00