From ae4d9018ea9cc79f7ceb30f01de34ffed3e3dab6 Mon Sep 17 00:00:00 2001 From: sam Date: Tue, 29 Oct 2024 20:19:49 +0100 Subject: [PATCH] fix: don't change status in test mode, fix broken guilds query --- .../Database/Repositories/GuildRepository.cs | 4 ++-- Catalogger.Backend/Services/StatusUpdateService.cs | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Catalogger.Backend/Database/Repositories/GuildRepository.cs b/Catalogger.Backend/Database/Repositories/GuildRepository.cs index 74a4462..79d950a 100644 --- a/Catalogger.Backend/Database/Repositories/GuildRepository.cs +++ b/Catalogger.Backend/Database/Repositories/GuildRepository.cs @@ -31,7 +31,7 @@ public class GuildRepository(ILogger logger, DatabaseConnection conn) public async Task GetAsync(ulong id) { - _logger.Debug("Getting guild config for {GuildId}", id); + _logger.Verbose("Getting guild config for {GuildId}", id); var guild = await conn.QueryFirstOrDefaultAsync( "select * from guilds where id = @Id", @@ -52,7 +52,7 @@ public class GuildRepository(ILogger logger, DatabaseConnection conn) await conn.ExecuteAsync( """ insert into guilds (id, key_roles, banned_systems, channels) - values (@Id, array[]::bigint[], array[]::text[], array[]::bigint[], @Channels) + values (@Id, array[]::bigint[], array[]::text[], @Channels::jsonb) on conflict do nothing """, new { Id = id, Channels = new Guild.ChannelConfig() } diff --git a/Catalogger.Backend/Services/StatusUpdateService.cs b/Catalogger.Backend/Services/StatusUpdateService.cs index 414c2d2..6c0dff7 100644 --- a/Catalogger.Backend/Services/StatusUpdateService.cs +++ b/Catalogger.Backend/Services/StatusUpdateService.cs @@ -20,7 +20,7 @@ using Remora.Discord.API.Objects; namespace Catalogger.Backend.Services; -public class StatusUpdateService(ILogger logger, ShardedGatewayClient shardedClient) +public class StatusUpdateService(ILogger logger, ShardedGatewayClient shardedClient, Config config) : BackgroundService { private readonly ILogger _logger = logger.ForContext(); @@ -40,6 +40,12 @@ public class StatusUpdateService(ILogger logger, ShardedGatewayClient shardedCli CataloggerMetrics.GuildsCached.Value ); + if (config.Discord.TestMode) + { + _logger.Debug("Not updating shard statuses because test mode is enabled."); + return; + } + foreach (var (shardId, client) in shardedClient.Shards) { if (!ShardedGatewayClient.IsConnected(client))