From 74faabe70819bd93399201d434d2e19d0745f4cd Mon Sep 17 00:00:00 2001 From: DarkAtra Date: Wed, 14 Aug 2024 20:10:14 +0200 Subject: [PATCH] fix: allow using configure commands in DMs (for admins) --- .../model/converter/ServerEntityConverter.kt | 32 ++++----------- .../converter/StatusMonitorEntityConverter.kt | 4 +- .../persistence/ServerRepositoryTest.kt | 40 +++++++++++++++++++ .../persistence/model/ServerTestUtils.kt | 10 ++++- 4 files changed, 58 insertions(+), 28 deletions(-) diff --git a/src/main/kotlin/de/darkatra/vrising/discord/persistence/model/converter/ServerEntityConverter.kt b/src/main/kotlin/de/darkatra/vrising/discord/persistence/model/converter/ServerEntityConverter.kt index c14a58f..ff50e9d 100644 --- a/src/main/kotlin/de/darkatra/vrising/discord/persistence/model/converter/ServerEntityConverter.kt +++ b/src/main/kotlin/de/darkatra/vrising/discord/persistence/model/converter/ServerEntityConverter.kt @@ -59,30 +59,14 @@ class ServerEntityConverter : EntityConverter { put(Server::discordServerId.name, server.discordServerId) put(Server::hostname.name, server.hostname) put(Server::queryPort.name, server.queryPort) - server.apiHostname?.let { apiHostname -> - put(Server::apiHostname.name, apiHostname) - } - server.apiPort?.let { apiPort -> - put(Server::apiPort.name, apiPort) - } - server.apiUsername?.let { apiUsername -> - put(Server::apiUsername.name, apiUsername) - } - server.apiPassword?.let { apiPassword -> - put(Server::apiPassword.name, apiPassword) - } - server.playerActivityFeed?.let { playerActivityFeed -> - put(Server::playerActivityFeed.name, nitriteMapper.tryConvert(playerActivityFeed, Document::class.java)) - } - server.pvpKillFeed?.let { pvpKillFeed -> - put(Server::pvpKillFeed.name, nitriteMapper.tryConvert(pvpKillFeed, Document::class.java)) - } - server.statusMonitor?.let { statusMonitor -> - put(Server::statusMonitor.name, nitriteMapper.tryConvert(statusMonitor, Document::class.java)) - } - server.pvpLeaderboard?.let { pvpLeaderboard -> - put(Server::pvpLeaderboard.name, nitriteMapper.tryConvert(pvpLeaderboard, Document::class.java)) - } + put(Server::apiHostname.name, server.apiHostname) + put(Server::apiPort.name, server.apiPort) + put(Server::apiUsername.name, server.apiUsername) + put(Server::apiPassword.name, server.apiPassword) + put(Server::playerActivityFeed.name, server.playerActivityFeed?.let { nitriteMapper.tryConvert(it, Document::class.java) }) + put(Server::pvpKillFeed.name, server.pvpKillFeed?.let { nitriteMapper.tryConvert(it, Document::class.java) }) + put(Server::statusMonitor.name, server.statusMonitor?.let { nitriteMapper.tryConvert(it, Document::class.java) }) + put(Server::pvpLeaderboard.name, server.pvpLeaderboard?.let { nitriteMapper.tryConvert(it, Document::class.java) }) } } } diff --git a/src/main/kotlin/de/darkatra/vrising/discord/persistence/model/converter/StatusMonitorEntityConverter.kt b/src/main/kotlin/de/darkatra/vrising/discord/persistence/model/converter/StatusMonitorEntityConverter.kt index e3bfdd0..3bc69d8 100644 --- a/src/main/kotlin/de/darkatra/vrising/discord/persistence/model/converter/StatusMonitorEntityConverter.kt +++ b/src/main/kotlin/de/darkatra/vrising/discord/persistence/model/converter/StatusMonitorEntityConverter.kt @@ -32,9 +32,7 @@ class StatusMonitorEntityConverter : EntityConverter { put(StatusMonitor::discordChannelId.name, statusMonitor.discordChannelId) put(StatusMonitor::displayServerDescription.name, statusMonitor.displayServerDescription) put(StatusMonitor::displayPlayerGearLevel.name, statusMonitor.displayPlayerGearLevel) - statusMonitor.currentEmbedMessageId?.let { currentEmbedMessageId -> - put(StatusMonitor::currentEmbedMessageId.name, currentEmbedMessageId) - } + put(StatusMonitor::currentEmbedMessageId.name, statusMonitor.currentEmbedMessageId) put(StatusMonitor::currentFailedAttempts.name, statusMonitor.currentFailedAttempts) put(StatusMonitor::currentFailedApiAttempts.name, statusMonitor.currentFailedApiAttempts) put(StatusMonitor::recentErrors.name, statusMonitor.recentErrors.map { error -> diff --git a/src/test/kotlin/de/darkatra/vrising/discord/persistence/ServerRepositoryTest.kt b/src/test/kotlin/de/darkatra/vrising/discord/persistence/ServerRepositoryTest.kt index e4e044d..c1388ac 100644 --- a/src/test/kotlin/de/darkatra/vrising/discord/persistence/ServerRepositoryTest.kt +++ b/src/test/kotlin/de/darkatra/vrising/discord/persistence/ServerRepositoryTest.kt @@ -35,6 +35,10 @@ class ServerRepositoryTest { assertThat(server.discordServerId).isEqualTo(ServerTestUtils.DISCORD_SERVER_ID) assertThat(server.hostname).isEqualTo(ServerTestUtils.HOST_NAME) assertThat(server.queryPort).isEqualTo(ServerTestUtils.QUERY_PORT) + assertThat(server.apiHostname).isEqualTo(ServerTestUtils.API_HOST_NAME) + assertThat(server.apiPort).isEqualTo(ServerTestUtils.API_PORT) + assertThat(server.apiUsername).isEqualTo(ServerTestUtils.API_USERNAME) + assertThat(server.apiPassword).isEqualTo(ServerTestUtils.API_PASSWORD) } @Test @@ -51,6 +55,10 @@ class ServerRepositoryTest { assertThat(server.discordServerId).isEqualTo(ServerTestUtils.DISCORD_SERVER_ID) assertThat(server.hostname).isEqualTo(ServerTestUtils.HOST_NAME) assertThat(server.queryPort).isEqualTo(ServerTestUtils.QUERY_PORT) + assertThat(server.apiHostname).isEqualTo(ServerTestUtils.API_HOST_NAME) + assertThat(server.apiPort).isEqualTo(ServerTestUtils.API_PORT) + assertThat(server.apiUsername).isEqualTo(ServerTestUtils.API_USERNAME) + assertThat(server.apiPassword).isEqualTo(ServerTestUtils.API_PASSWORD) } @Test @@ -67,6 +75,10 @@ class ServerRepositoryTest { assertThat(server.discordServerId).isEqualTo(ServerTestUtils.DISCORD_SERVER_ID) assertThat(server.hostname).isEqualTo(ServerTestUtils.HOST_NAME) assertThat(server.queryPort).isEqualTo(ServerTestUtils.QUERY_PORT) + assertThat(server.apiHostname).isEqualTo(ServerTestUtils.API_HOST_NAME) + assertThat(server.apiPort).isEqualTo(ServerTestUtils.API_PORT) + assertThat(server.apiUsername).isEqualTo(ServerTestUtils.API_USERNAME) + assertThat(server.apiPassword).isEqualTo(ServerTestUtils.API_PASSWORD) } @Test @@ -116,4 +128,32 @@ class ServerRepositoryTest { assertThat(e.message).isEqualTo("Server with id '${ServerTestUtils.ID}' not found.") } + + @Test + fun `should update nullable fields of Server`() { + + val server = ServerTestUtils.getServer() + serverRepository.addServer(server) + + val update = serverRepository.getServer(server.id, server.discordServerId)!!.apply { + apiHostname = null + apiPort = null + apiUsername = null + apiPassword = null + } + + serverRepository.updateServer(update) + + val actualServer = serverRepository.getServer(ServerTestUtils.ID) + + assertThat(actualServer).isNotNull() + assertThat(actualServer!!.id).isEqualTo(ServerTestUtils.ID) + assertThat(actualServer.discordServerId).isEqualTo(ServerTestUtils.DISCORD_SERVER_ID) + assertThat(actualServer.hostname).isEqualTo(ServerTestUtils.HOST_NAME) + assertThat(actualServer.queryPort).isEqualTo(ServerTestUtils.QUERY_PORT) + assertThat(actualServer.apiHostname).isNull() + assertThat(actualServer.apiPort).isNull() + assertThat(actualServer.apiUsername).isNull() + assertThat(actualServer.apiPassword).isNull() + } } diff --git a/src/test/kotlin/de/darkatra/vrising/discord/persistence/model/ServerTestUtils.kt b/src/test/kotlin/de/darkatra/vrising/discord/persistence/model/ServerTestUtils.kt index 46889e6..15a7211 100644 --- a/src/test/kotlin/de/darkatra/vrising/discord/persistence/model/ServerTestUtils.kt +++ b/src/test/kotlin/de/darkatra/vrising/discord/persistence/model/ServerTestUtils.kt @@ -8,8 +8,12 @@ object ServerTestUtils { const val ID = "id" val DISCORD_SERVER_ID = Snowflake(Instant.now().toKotlinInstant()).toString() - const val HOST_NAME = "localhost" + const val HOST_NAME = "darkatra.de" const val QUERY_PORT = 8081 + const val API_HOST_NAME = "localhost" + const val API_PORT = 8082 + const val API_USERNAME = "test" + const val API_PASSWORD = "1234" fun getServer(): Server { return Server( @@ -21,6 +25,10 @@ object ServerTestUtils { discordServerId = DISCORD_SERVER_ID, hostname = HOST_NAME, queryPort = QUERY_PORT, + apiHostname = API_HOST_NAME, + apiPort = API_PORT, + apiUsername = API_USERNAME, + apiPassword = API_PASSWORD ) } }