feat: watchlist repository, remove ef core from all bot code

This commit is contained in:
sam 2024-10-28 02:14:41 +01:00
parent da4dfae27c
commit f0511a560c
Signed by: sam
GPG key ID: 5F3C3C1B3166639D
19 changed files with 155 additions and 97 deletions

View file

@ -19,6 +19,7 @@ using Catalogger.Backend.Bot;
using Catalogger.Backend.Database.Queries;
using Catalogger.Backend.Extensions;
using Catalogger.Backend.Services;
using Dapper;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Remora.Discord.Extensions.Embeds;
@ -40,7 +41,7 @@ public partial class GuildsController
);
}
var guildConfig = await db.GetGuildAsync(guildId.Value, false);
var guildConfig = await guildRepository.GetAsync(guildId);
var logChannelId =
webhookExecutor.GetLogChannel(guildConfig, LogChannelType.GuildUpdate)
?? webhookExecutor.GetLogChannel(guildConfig, LogChannelType.GuildMemberRemove);
@ -80,17 +81,32 @@ public partial class GuildsController
);
}
await using var tx = await db.Database.BeginTransactionAsync();
var inviteCount = await db
.Invites.Where(i => i.GuildId == guildId.Value)
.ExecuteDeleteAsync();
var watchlistCount = await db
.Watchlists.Where(w => w.GuildId == guildId.Value)
.ExecuteDeleteAsync();
var messageCount = await db
.Messages.Where(m => m.GuildId == guildId.Value)
.ExecuteDeleteAsync();
await db.Guilds.Where(g => g.Id == guildId.Value).ExecuteDeleteAsync();
await using var tx = await dbConn.BeginTransactionAsync();
var inviteCount = await dbConn.ExecuteAsync(
"delete from invites where guild_id = @GuildId",
new { GuildId = guildId.Value },
tx
);
var watchlistCount = await dbConn.ExecuteAsync(
"delete from watchlists where guild_id = @GuildId",
new { GuildId = guildId.Value },
tx
);
var messageCount = await dbConn.ExecuteAsync(
"delete from messages where guild_id = @GuildId",
new { GuildId = guildId.Value },
tx
);
await dbConn.ExecuteAsync(
"delete from guilds where id = @GuildId",
new { GuildId = guildId.Value },
tx
);
await tx.CommitAsync();
_logger.Information(