diff --git a/README.md b/README.md index e4f26efe0689e2d84636bdc18c746a35d25b5602..024773f595d15e90240fac41a92692811994ecfe 100644 --- a/README.md +++ b/README.md @@ -118,8 +118,8 @@ To deploy this application in a production environment, there are several key ar - Currently, table creation is handled at application startup. The logic is implemented to execute the migration only if needed. - To correctly handle migrations, it could be useful to handle it through a migration tool, like Liquibase. -- Considering that you are using Terraform at Betclic, it could also be a way to set up the database. Indeed, Terraform - plays nicely with DynamoDB to manage the setup of table and to establish connections with AWS. +- When working with Terraform, it could also be a way to set up the database. Indeed, Terraform plays nicely with + DynamoDB to manage the setup of table and to establish connections with AWS. ### 3. CI/CD Pipelines diff --git a/build.gradle.kts b/build.gradle.kts index f43499f5aa6fd3e4ac74c58f2bf1c09ccc7e3fd4..2e3df65362141dead3661fb29b59889d22fe0894 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,7 @@ plugins { kotlin("plugin.serialization") version "1.9.0" } -group = "betclic.test" +group = "tournament.test" version = "0.0.1-SNAPSHOT" application { diff --git a/src/main/kotlin/Application.kt b/src/main/kotlin/Application.kt index 8814813902a09373370f79376cad193b93780c8b..49d8fe90f20eba3dbf709fcc82be89203db76c55 100644 --- a/src/main/kotlin/Application.kt +++ b/src/main/kotlin/Application.kt @@ -1,10 +1,10 @@ -package betclic.test +package tournament.test -import betclic.test.configuration.configureExceptionHandling -import betclic.test.configuration.configureKoin -import betclic.test.configuration.configureRouting -import betclic.test.configuration.configureSerialization -import betclic.test.configuration.migrateTables +import tournament.test.configuration.configureExceptionHandling +import tournament.test.configuration.configureKoin +import tournament.test.configuration.configureRouting +import tournament.test.configuration.configureSerialization +import tournament.test.configuration.migrateTables import io.ktor.server.application.* import kotlinx.coroutines.runBlocking diff --git a/src/main/kotlin/configuration/ApiConfiguration.kt b/src/main/kotlin/configuration/ApiConfiguration.kt index 7e4ac308798de15c77c22c29c4f3d5532a62d0dc..92d949d613aa05bd0dec282b6191ac327e9e5c94 100644 --- a/src/main/kotlin/configuration/ApiConfiguration.kt +++ b/src/main/kotlin/configuration/ApiConfiguration.kt @@ -1,4 +1,4 @@ -package betclic.test.configuration +package tournament.test.configuration import io.ktor.serialization.kotlinx.json.* import io.ktor.server.application.* diff --git a/src/main/kotlin/configuration/DynamoDbConfiguration.kt b/src/main/kotlin/configuration/DynamoDbConfiguration.kt index b55b82c3a74c03d063d4682b5e2ddf20f1f416a4..ddf2cb0831a6397ecef901129e992216e5f43d15 100644 --- a/src/main/kotlin/configuration/DynamoDbConfiguration.kt +++ b/src/main/kotlin/configuration/DynamoDbConfiguration.kt @@ -1,4 +1,4 @@ -package betclic.test.configuration +package tournament.test.configuration import io.ktor.server.config.* import org.slf4j.LoggerFactory diff --git a/src/main/kotlin/configuration/DynamoDbMigration.kt b/src/main/kotlin/configuration/DynamoDbMigration.kt index 3677fc6f202c2c42b915527933b154641ae0f372..b91ef078beaf3225179fe84e6c7bf63003278d6f 100644 --- a/src/main/kotlin/configuration/DynamoDbMigration.kt +++ b/src/main/kotlin/configuration/DynamoDbMigration.kt @@ -1,6 +1,6 @@ -package betclic.test.configuration +package tournament.test.configuration -import betclic.test.player.entities.PlayerEntity +import tournament.test.player.entities.PlayerEntity import dev.andrewohara.dynamokt.DataClassTableSchema import io.ktor.server.application.* import kotlinx.coroutines.future.await diff --git a/src/main/kotlin/configuration/ExceptionConfiguration.kt b/src/main/kotlin/configuration/ExceptionConfiguration.kt index 7c6ad94bc7f3ac0ddc1ca12a5415d77ebd21e2e5..d8dcf393c9e88fed7798428818161d830be7f8c4 100644 --- a/src/main/kotlin/configuration/ExceptionConfiguration.kt +++ b/src/main/kotlin/configuration/ExceptionConfiguration.kt @@ -1,6 +1,6 @@ -package betclic.test.configuration +package tournament.test.configuration -import betclic.test.player.exceptions.AlreadyExistingPlayerException +import tournament.test.player.exceptions.AlreadyExistingPlayerException import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.plugins.* diff --git a/src/main/kotlin/configuration/InjectionConfiguration.kt b/src/main/kotlin/configuration/InjectionConfiguration.kt index 57d0f079adc670ebb33dcba53dbe8e5d79f24c52..9dd3199de2570d54fbf06bb4d980d8bc7507ae2f 100644 --- a/src/main/kotlin/configuration/InjectionConfiguration.kt +++ b/src/main/kotlin/configuration/InjectionConfiguration.kt @@ -1,9 +1,9 @@ -package betclic.test.configuration +package tournament.test.configuration -import betclic.test.player.repositories.PlayerRepository -import betclic.test.player.repositories.PlayerRepositoryImpl -import betclic.test.player.services.PlayerService -import betclic.test.player.services.PlayerServiceImpl +import tournament.test.player.repositories.PlayerRepository +import tournament.test.player.repositories.PlayerRepositoryImpl +import tournament.test.player.services.PlayerService +import tournament.test.player.services.PlayerServiceImpl import io.ktor.server.application.* import org.koin.dsl.module import org.koin.ktor.plugin.Koin diff --git a/src/main/kotlin/configuration/RoutingConfiguration.kt b/src/main/kotlin/configuration/RoutingConfiguration.kt index c0efa2700fb62337bdce53d3de100d12dd7d6a07..e5d883ba6ea12ad28ab5ca912f71feaf7c914953 100644 --- a/src/main/kotlin/configuration/RoutingConfiguration.kt +++ b/src/main/kotlin/configuration/RoutingConfiguration.kt @@ -1,6 +1,6 @@ -package betclic.test.configuration +package tournament.test.configuration -import betclic.test.player.routes.playerRoutes +import tournament.test.player.routes.playerRoutes import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.plugins.cors.routing.* diff --git a/src/main/kotlin/player/dtos/PlayerCreationDTO.kt b/src/main/kotlin/player/dtos/PlayerCreationDTO.kt index d42c2cdca56a07869e344ba618a4f1411c27ddf0..b57254c3380ba4cb4195eb06165271a6d95c9084 100644 --- a/src/main/kotlin/player/dtos/PlayerCreationDTO.kt +++ b/src/main/kotlin/player/dtos/PlayerCreationDTO.kt @@ -1,6 +1,6 @@ -package betclic.test.player.dtos +package tournament.test.player.dtos -import betclic.test.player.entities.Player +import tournament.test.player.entities.Player import kotlinx.serialization.Serializable @Serializable diff --git a/src/main/kotlin/player/dtos/PlayerInfoDTO.kt b/src/main/kotlin/player/dtos/PlayerInfoDTO.kt index 7ba4bfd594e71856f95a5cfad4584f85a211591d..4b3c050c4de6bbac465cac4996844f9ab9051d17 100644 --- a/src/main/kotlin/player/dtos/PlayerInfoDTO.kt +++ b/src/main/kotlin/player/dtos/PlayerInfoDTO.kt @@ -1,6 +1,6 @@ -package betclic.test.player.dtos +package tournament.test.player.dtos -import betclic.test.player.entities.Player +import tournament.test.player.entities.Player import kotlinx.serialization.Serializable @Serializable diff --git a/src/main/kotlin/player/dtos/PlayerUpdateDTO.kt b/src/main/kotlin/player/dtos/PlayerUpdateDTO.kt index 937f25802ac2717b5ba3b33fe9067a182b03fa09..43310a8861c63565514b8f036e4ecb51e0cb7b5e 100644 --- a/src/main/kotlin/player/dtos/PlayerUpdateDTO.kt +++ b/src/main/kotlin/player/dtos/PlayerUpdateDTO.kt @@ -1,6 +1,6 @@ -package betclic.test.player.dtos +package tournament.test.player.dtos -import betclic.test.player.entities.Player +import tournament.test.player.entities.Player import kotlinx.serialization.Serializable @Serializable diff --git a/src/main/kotlin/player/entities/Player.kt b/src/main/kotlin/player/entities/Player.kt index 1d4f6e06c8836a15ea95467bf18e0d1aee3011aa..6d4e136c1ba0b11dd1888ad09adfd4a7a582ee02 100644 --- a/src/main/kotlin/player/entities/Player.kt +++ b/src/main/kotlin/player/entities/Player.kt @@ -1,4 +1,4 @@ -package betclic.test.player.entities +package tournament.test.player.entities import dev.andrewohara.dynamokt.DynamoKtPartitionKey import kotlinx.serialization.Serializable diff --git a/src/main/kotlin/player/exceptions/AlreadyExistingException.kt b/src/main/kotlin/player/exceptions/AlreadyExistingException.kt index 4deded5743a854df69d28a0ac238d4125af152f8..694d99de59b70f295cf80bcef548b67c57735c9f 100644 --- a/src/main/kotlin/player/exceptions/AlreadyExistingException.kt +++ b/src/main/kotlin/player/exceptions/AlreadyExistingException.kt @@ -1,4 +1,4 @@ -package betclic.test.player.exceptions +package tournament.test.player.exceptions class AlreadyExistingPlayerException(val pseudo: String) : RuntimeException("$pseudo already exists. You still can update this player points") \ No newline at end of file diff --git a/src/main/kotlin/player/repositories/PlayerRepository.kt b/src/main/kotlin/player/repositories/PlayerRepository.kt index 0aa713a0967a2f915c9616dfcafec9f216b21fce..440825b18466dd1f1eeb24fe395fc0e8edbd2655 100644 --- a/src/main/kotlin/player/repositories/PlayerRepository.kt +++ b/src/main/kotlin/player/repositories/PlayerRepository.kt @@ -1,6 +1,6 @@ -package betclic.test.player.repositories +package tournament.test.player.repositories -import betclic.test.player.entities.Player +import tournament.test.player.entities.Player interface PlayerRepository { diff --git a/src/main/kotlin/player/repositories/PlayerRepositoryImpl.kt b/src/main/kotlin/player/repositories/PlayerRepositoryImpl.kt index 278a263e20e75dbe9c3b604a8c6e6ab5e0affbd9..9a99c232171022ff5cfb7fe53f7c835a9cb4e2fd 100644 --- a/src/main/kotlin/player/repositories/PlayerRepositoryImpl.kt +++ b/src/main/kotlin/player/repositories/PlayerRepositoryImpl.kt @@ -1,9 +1,9 @@ -package betclic.test.player.repositories +package tournament.test.player.repositories -import betclic.test.player.entities.Player -import betclic.test.player.entities.PlayerEntity -import betclic.test.player.entities.toPlayer -import betclic.test.player.entities.toPlayerEntity +import tournament.test.player.entities.Player +import tournament.test.player.entities.PlayerEntity +import tournament.test.player.entities.toPlayer +import tournament.test.player.entities.toPlayerEntity import dev.andrewohara.dynamokt.DataClassTableSchema import kotlinx.coroutines.future.await import kotlinx.coroutines.reactive.asFlow diff --git a/src/main/kotlin/player/routes/PlayerRoute.kt b/src/main/kotlin/player/routes/PlayerRoute.kt index fc4c201da8423897d18e26e4922793fd880c302b..512ecc64fc5747d14c0ca6a3aab011e7617085d0 100644 --- a/src/main/kotlin/player/routes/PlayerRoute.kt +++ b/src/main/kotlin/player/routes/PlayerRoute.kt @@ -1,9 +1,9 @@ -package betclic.test.player.routes +package tournament.test.player.routes -import betclic.test.player.dtos.PlayerCreationDTO -import betclic.test.player.dtos.PlayerInfoDTO -import betclic.test.player.dtos.PlayerUpdateDTO -import betclic.test.player.services.PlayerService +import tournament.test.player.dtos.PlayerCreationDTO +import tournament.test.player.dtos.PlayerInfoDTO +import tournament.test.player.dtos.PlayerUpdateDTO +import tournament.test.player.services.PlayerService import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.request.* diff --git a/src/main/kotlin/player/services/PlayerService.kt b/src/main/kotlin/player/services/PlayerService.kt index c45778059d425aa46669c1a25c801a9c4c706761..9602b3d1fe15cc8a6c3ac5333af1319c7340935f 100644 --- a/src/main/kotlin/player/services/PlayerService.kt +++ b/src/main/kotlin/player/services/PlayerService.kt @@ -1,9 +1,9 @@ -package betclic.test.player.services +package tournament.test.player.services -import betclic.test.player.dtos.PlayerCreationDTO -import betclic.test.player.dtos.PlayerInfoDTO -import betclic.test.player.dtos.PlayerUpdateDTO -import betclic.test.player.entities.Player +import tournament.test.player.dtos.PlayerCreationDTO +import tournament.test.player.dtos.PlayerInfoDTO +import tournament.test.player.dtos.PlayerUpdateDTO +import tournament.test.player.entities.Player interface PlayerService { suspend fun createNewPlayer(playerCreationDTO: PlayerCreationDTO): Player diff --git a/src/main/kotlin/player/services/PlayerServiceImpl.kt b/src/main/kotlin/player/services/PlayerServiceImpl.kt index c061dd2968bd3c7de2b5d5bd81fdbaafa0f622f5..16b0ca47e6ef93916949981229ad09fc48d117b3 100644 --- a/src/main/kotlin/player/services/PlayerServiceImpl.kt +++ b/src/main/kotlin/player/services/PlayerServiceImpl.kt @@ -1,13 +1,13 @@ -package betclic.test.player.services +package tournament.test.player.services -import betclic.test.player.dtos.PlayerCreationDTO -import betclic.test.player.dtos.PlayerInfoDTO -import betclic.test.player.dtos.PlayerUpdateDTO -import betclic.test.player.dtos.toPlayer -import betclic.test.player.dtos.toPlayerInfoDTO -import betclic.test.player.entities.Player -import betclic.test.player.exceptions.AlreadyExistingPlayerException -import betclic.test.player.repositories.PlayerRepository +import tournament.test.player.dtos.PlayerCreationDTO +import tournament.test.player.dtos.PlayerInfoDTO +import tournament.test.player.dtos.PlayerUpdateDTO +import tournament.test.player.dtos.toPlayer +import tournament.test.player.dtos.toPlayerInfoDTO +import tournament.test.player.entities.Player +import tournament.test.player.exceptions.AlreadyExistingPlayerException +import tournament.test.player.repositories.PlayerRepository import io.ktor.server.application.* import io.ktor.server.plugins.* import org.slf4j.LoggerFactory diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index d9ece3a1bb55755aef081ee82f043f37c50d613b..30849d1660225aec297a5403a1144a5ddead3dd5 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -1,7 +1,7 @@ ktor: application: modules: - - betclic.test.ApplicationKt.module + - tournament.test.ApplicationKt.module deployment: port: 8080 database: diff --git a/src/test/kotlin/TestApplication.kt b/src/test/kotlin/TestApplication.kt index 038050713d41b338e8a716e6d92354de2832cb62..e43bf9e6fa5f9944b2abada729657a350668b835 100644 --- a/src/test/kotlin/TestApplication.kt +++ b/src/test/kotlin/TestApplication.kt @@ -1,6 +1,6 @@ -import betclic.test.configuration -import betclic.test.configuration.DynamoDbMigrationService -import betclic.test.initialize +import tournament.test.configuration +import tournament.test.configuration.DynamoDbMigrationService +import tournament.test.initialize import io.ktor.server.application.* import org.koin.core.context.loadKoinModules import org.koin.dsl.module diff --git a/src/test/kotlin/player/PlayerIntegrationTest.kt b/src/test/kotlin/player/PlayerIntegrationTest.kt index f085e3218ef176b38c32947d46a2f29739b0ef19..4cff8127edac339919f4d7ea10558814010f5740 100644 --- a/src/test/kotlin/player/PlayerIntegrationTest.kt +++ b/src/test/kotlin/player/PlayerIntegrationTest.kt @@ -1,10 +1,10 @@ package player import BaseIntegrationTest -import betclic.test.player.dtos.PlayerCreationDTO -import betclic.test.player.dtos.PlayerUpdateDTO -import betclic.test.player.entities.Player -import betclic.test.player.repositories.PlayerRepository +import tournament.test.player.dtos.PlayerCreationDTO +import tournament.test.player.dtos.PlayerUpdateDTO +import tournament.test.player.entities.Player +import tournament.test.player.repositories.PlayerRepository import io.ktor.client.request.* import io.ktor.http.* import kotlinx.serialization.encodeToString diff --git a/src/test/kotlin/player/PlayerServiceTest.kt b/src/test/kotlin/player/PlayerServiceTest.kt index 75b98b65f8462092a0cd2039be577ef30bde80ee..28979faeaae764cbb9ea71902005d939e6709a30 100644 --- a/src/test/kotlin/player/PlayerServiceTest.kt +++ b/src/test/kotlin/player/PlayerServiceTest.kt @@ -1,11 +1,11 @@ package player -import betclic.test.player.dtos.PlayerCreationDTO -import betclic.test.player.dtos.PlayerUpdateDTO -import betclic.test.player.entities.Player -import betclic.test.player.exceptions.AlreadyExistingPlayerException -import betclic.test.player.repositories.PlayerRepository -import betclic.test.player.services.PlayerServiceImpl +import tournament.test.player.dtos.PlayerCreationDTO +import tournament.test.player.dtos.PlayerUpdateDTO +import tournament.test.player.entities.Player +import tournament.test.player.exceptions.AlreadyExistingPlayerException +import tournament.test.player.repositories.PlayerRepository +import tournament.test.player.services.PlayerServiceImpl import io.ktor.server.plugins.* import io.mockk.coEvery import io.mockk.coVerify