feat: exorcise entity framework core from most responders
This commit is contained in:
parent
33b78a7ac5
commit
5891f28f7c
32 changed files with 743 additions and 145 deletions
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
using Catalogger.Backend.Cache.InMemoryCache;
|
||||
using Catalogger.Backend.Database;
|
||||
using Catalogger.Backend.Database.Dapper.Repositories;
|
||||
using Catalogger.Backend.Database.Queries;
|
||||
using Catalogger.Backend.Extensions;
|
||||
using Catalogger.Backend.Services;
|
||||
|
|
@ -27,7 +28,7 @@ namespace Catalogger.Backend.Bot.Responders.Guilds;
|
|||
|
||||
public class GuildBanAddResponder(
|
||||
ILogger logger,
|
||||
DatabaseContext db,
|
||||
GuildRepository guildRepository,
|
||||
WebhookExecutorService webhookExecutor,
|
||||
UserCache userCache,
|
||||
AuditLogCache auditLogCache,
|
||||
|
|
@ -38,7 +39,7 @@ public class GuildBanAddResponder(
|
|||
|
||||
public async Task<Result> RespondAsync(IGuildBanAdd evt, CancellationToken ct = default)
|
||||
{
|
||||
var guildConfig = await db.GetGuildAsync(evt.GuildID, true, ct);
|
||||
var guildConfig = await guildRepository.GetAsync(evt.GuildID);
|
||||
|
||||
// Delay 2 seconds for the audit log
|
||||
await Task.Delay(2000, ct);
|
||||
|
|
@ -76,10 +77,8 @@ public class GuildBanAddResponder(
|
|||
pkSystem.Id,
|
||||
evt.GuildID
|
||||
);
|
||||
guildConfig.BannedSystems.Add(pkSystem.Id);
|
||||
guildConfig.BannedSystems.Add(pkSystem.Uuid.ToString());
|
||||
db.Update(guildConfig);
|
||||
await db.SaveChangesAsync(ct);
|
||||
|
||||
await guildRepository.BanSystemAsync(evt.GuildID, pkSystem.Id, pkSystem.Uuid);
|
||||
}
|
||||
|
||||
embed.AddField(
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
using Catalogger.Backend.Cache.InMemoryCache;
|
||||
using Catalogger.Backend.Database;
|
||||
using Catalogger.Backend.Database.Dapper.Repositories;
|
||||
using Catalogger.Backend.Database.Queries;
|
||||
using Catalogger.Backend.Extensions;
|
||||
using Catalogger.Backend.Services;
|
||||
|
|
@ -27,7 +28,7 @@ namespace Catalogger.Backend.Bot.Responders.Guilds;
|
|||
|
||||
public class GuildBanRemoveResponder(
|
||||
ILogger logger,
|
||||
DatabaseContext db,
|
||||
GuildRepository guildRepository,
|
||||
WebhookExecutorService webhookExecutor,
|
||||
UserCache userCache,
|
||||
AuditLogCache auditLogCache,
|
||||
|
|
@ -38,7 +39,7 @@ public class GuildBanRemoveResponder(
|
|||
|
||||
public async Task<Result> RespondAsync(IGuildBanRemove evt, CancellationToken ct = default)
|
||||
{
|
||||
var guildConfig = await db.GetGuildAsync(evt.GuildID, false, ct);
|
||||
var guildConfig = await guildRepository.GetAsync(evt.GuildID);
|
||||
|
||||
// Delay 2 seconds for the audit log
|
||||
await Task.Delay(2000, ct);
|
||||
|
|
@ -68,10 +69,7 @@ public class GuildBanRemoveResponder(
|
|||
var pkSystem = await pluralkitApi.GetPluralKitSystemAsync(evt.User.ID.Value, ct);
|
||||
if (pkSystem != null)
|
||||
{
|
||||
guildConfig.BannedSystems.Remove(pkSystem.Id);
|
||||
guildConfig.BannedSystems.Remove(pkSystem.Uuid.ToString());
|
||||
db.Update(guildConfig);
|
||||
await db.SaveChangesAsync(ct);
|
||||
await guildRepository.UnbanSystemAsync(evt.GuildID, pkSystem.Id, pkSystem.Uuid);
|
||||
|
||||
embed.AddField(
|
||||
"PluralKit system",
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
using Catalogger.Backend.Cache;
|
||||
using Catalogger.Backend.Cache.InMemoryCache;
|
||||
using Catalogger.Backend.Database;
|
||||
using Catalogger.Backend.Database.Dapper.Repositories;
|
||||
using Catalogger.Backend.Extensions;
|
||||
using Catalogger.Backend.Services;
|
||||
using Remora.Discord.API.Abstractions.Gateway.Events;
|
||||
|
|
@ -29,7 +30,7 @@ namespace Catalogger.Backend.Bot.Responders.Guilds;
|
|||
public class GuildCreateResponder(
|
||||
Config config,
|
||||
ILogger logger,
|
||||
DatabaseContext db,
|
||||
GuildRepository guildRepository,
|
||||
GuildCache guildCache,
|
||||
EmojiCache emojiCache,
|
||||
ChannelCache channelCache,
|
||||
|
|
@ -75,13 +76,9 @@ public class GuildCreateResponder(
|
|||
guildId = unavailableGuild.ID.ToUlong();
|
||||
}
|
||||
|
||||
var tx = await db.Database.BeginTransactionAsync(ct);
|
||||
if (await db.Guilds.FindAsync([guildId], ct) != null)
|
||||
if (await guildRepository.IsGuildKnown(guildId))
|
||||
return Result.Success;
|
||||
|
||||
db.Add(new Guild { Id = guildId });
|
||||
await db.SaveChangesAsync(ct);
|
||||
await tx.CommitAsync(ct);
|
||||
await guildRepository.AddGuildAsync(guildId);
|
||||
|
||||
_logger.Information("Joined new guild {GuildName} / {GuildId}", guildName, guildId);
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
using Catalogger.Backend.Cache.InMemoryCache;
|
||||
using Catalogger.Backend.Database;
|
||||
using Catalogger.Backend.Database.Dapper.Repositories;
|
||||
using Catalogger.Backend.Database.Queries;
|
||||
using Catalogger.Backend.Extensions;
|
||||
using Catalogger.Backend.Services;
|
||||
|
|
@ -29,7 +30,7 @@ namespace Catalogger.Backend.Bot.Responders.Guilds;
|
|||
|
||||
public class GuildEmojisUpdateResponder(
|
||||
ILogger logger,
|
||||
DatabaseContext db,
|
||||
GuildRepository guildRepository,
|
||||
EmojiCache emojiCache,
|
||||
WebhookExecutorService webhookExecutor
|
||||
) : IResponder<IGuildEmojisUpdate>
|
||||
|
|
@ -111,7 +112,7 @@ public class GuildEmojisUpdateResponder(
|
|||
return Result.Success;
|
||||
}
|
||||
|
||||
var guildConfig = await db.GetGuildAsync(evt.GuildID, false, ct);
|
||||
var guildConfig = await guildRepository.GetAsync(evt.GuildID);
|
||||
webhookExecutor.QueueLog(guildConfig, LogChannelType.GuildEmojisUpdate, embed);
|
||||
return Result.Success;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
using Catalogger.Backend.Cache.InMemoryCache;
|
||||
using Catalogger.Backend.Database;
|
||||
using Catalogger.Backend.Database.Dapper.Repositories;
|
||||
using Catalogger.Backend.Database.Queries;
|
||||
using Catalogger.Backend.Extensions;
|
||||
using Catalogger.Backend.Services;
|
||||
|
|
@ -28,7 +29,7 @@ namespace Catalogger.Backend.Bot.Responders.Guilds;
|
|||
|
||||
public class GuildUpdateResponder(
|
||||
ILogger logger,
|
||||
DatabaseContext db,
|
||||
GuildRepository guildRepository,
|
||||
GuildCache guildCache,
|
||||
UserCache userCache,
|
||||
WebhookExecutorService webhookExecutor
|
||||
|
|
@ -97,7 +98,7 @@ public class GuildUpdateResponder(
|
|||
|
||||
if (embed.Fields.Count != 0)
|
||||
{
|
||||
var guildConfig = await db.GetGuildAsync(evt.ID, false, ct);
|
||||
var guildConfig = await guildRepository.GetAsync(evt.ID);
|
||||
webhookExecutor.QueueLog(
|
||||
guildConfig,
|
||||
LogChannelType.GuildUpdate,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue