fix: don't change status in test mode, fix broken guilds query

This commit is contained in:
sam 2024-10-29 20:19:49 +01:00
parent 87b3281c8d
commit ae4d9018ea
Signed by: sam
GPG key ID: 5F3C3C1B3166639D
2 changed files with 9 additions and 3 deletions

View file

@ -31,7 +31,7 @@ public class GuildRepository(ILogger logger, DatabaseConnection conn)
public async Task<Guild> GetAsync(ulong id) public async Task<Guild> GetAsync(ulong id)
{ {
_logger.Debug("Getting guild config for {GuildId}", id); _logger.Verbose("Getting guild config for {GuildId}", id);
var guild = await conn.QueryFirstOrDefaultAsync<Guild>( var guild = await conn.QueryFirstOrDefaultAsync<Guild>(
"select * from guilds where id = @Id", "select * from guilds where id = @Id",
@ -52,7 +52,7 @@ public class GuildRepository(ILogger logger, DatabaseConnection conn)
await conn.ExecuteAsync( await conn.ExecuteAsync(
""" """
insert into guilds (id, key_roles, banned_systems, channels) 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 on conflict do nothing
""", """,
new { Id = id, Channels = new Guild.ChannelConfig() } new { Id = id, Channels = new Guild.ChannelConfig() }

View file

@ -20,7 +20,7 @@ using Remora.Discord.API.Objects;
namespace Catalogger.Backend.Services; namespace Catalogger.Backend.Services;
public class StatusUpdateService(ILogger logger, ShardedGatewayClient shardedClient) public class StatusUpdateService(ILogger logger, ShardedGatewayClient shardedClient, Config config)
: BackgroundService : BackgroundService
{ {
private readonly ILogger _logger = logger.ForContext<StatusUpdateService>(); private readonly ILogger _logger = logger.ForContext<StatusUpdateService>();
@ -40,6 +40,12 @@ public class StatusUpdateService(ILogger logger, ShardedGatewayClient shardedCli
CataloggerMetrics.GuildsCached.Value 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) foreach (var (shardId, client) in shardedClient.Shards)
{ {
if (!ShardedGatewayClient.IsConnected(client)) if (!ShardedGatewayClient.IsConnected(client))