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

@ -18,8 +18,8 @@ using Catalogger.Backend.Api.Middleware;
using Catalogger.Backend.Cache;
using Catalogger.Backend.Cache.InMemoryCache;
using Catalogger.Backend.Database;
using Catalogger.Backend.Database.Queries;
using Catalogger.Backend.Database.Redis;
using Catalogger.Backend.Database.Dapper;
using Catalogger.Backend.Database.Dapper.Repositories;
using Catalogger.Backend.Services;
using Microsoft.AspNetCore.Mvc;
using Remora.Discord.API;
@ -33,6 +33,8 @@ namespace Catalogger.Backend.Api;
public partial class GuildsController(
ILogger logger,
DatabaseContext db,
DatabaseConnection dbConn,
GuildRepository guildRepository,
GuildCache guildCache,
EmojiCache emojiCache,
ChannelCache channelCache,
@ -70,7 +72,7 @@ public partial class GuildsController(
{
var (guildId, guild) = await ParseGuildAsync(id);
var guildConfig = await db.GetGuildAsync(guildId.Value, false);
var guildConfig = await guildRepository.GetAsync(guildId);
var channels = channelCache
.GuildChannels(guildId)
@ -134,12 +136,12 @@ public partial class GuildsController(
[ProducesResponseType<Database.Models.Guild.ChannelConfig>(statusCode: StatusCodes.Status200OK)]
public async Task<IActionResult> PatchGuildAsync(string id, [FromBody] ChannelRequest req)
{
var (guildId, guild) = await ParseGuildAsync(id);
var (guildId, _) = await ParseGuildAsync(id);
var guildChannels = channelCache
.GuildChannels(guildId)
.Where(c => c.Type is ChannelType.GuildText)
.ToList();
var guildConfig = await db.GetGuildAsync(guildId);
var guildConfig = await guildRepository.GetAsync(guildId);
if (req.IgnoredChannels != null)
{
@ -316,9 +318,7 @@ public partial class GuildsController(
)
guildConfig.Channels.MessageDeleteBulk = req.MessageDeleteBulk ?? 0;
db.Update(guildConfig);
await db.SaveChangesAsync();
await guildRepository.UpdateChannelConfigAsync(guildId, guildConfig.Channels);
return Ok(guildConfig.Channels);
}