Major database refactor (again)

This commit is contained in:
Ske
2020-08-29 13:46:27 +02:00
parent 3996cd48c7
commit c7612df37e
55 changed files with 1014 additions and 1100 deletions

View File

@@ -13,14 +13,16 @@ namespace PluralKit.Bot
{
public class ReactionAdded: IEventHandler<MessageReactionAddEventArgs>
{
private IDataStore _data;
private EmbedService _embeds;
private ILogger _logger;
private readonly IDatabase _db;
private readonly ModelRepository _repo;
private readonly EmbedService _embeds;
private readonly ILogger _logger;
public ReactionAdded(IDataStore data, EmbedService embeds, ILogger logger)
public ReactionAdded(EmbedService embeds, ILogger logger, IDatabase db, ModelRepository repo)
{
_data = data;
_embeds = embeds;
_db = db;
_repo = repo;
_logger = logger.ForContext<ReactionAdded>();
}
@@ -42,18 +44,21 @@ namespace PluralKit.Bot
// Ignore reactions from bots (we can't DM them anyway)
if (evt.User.IsBot) return;
Task<FullMessage> GetMessage() =>
_db.Execute(c => _repo.GetMessage(c, evt.Message.Id));
FullMessage msg;
switch (evt.Emoji.Name)
{
// Message deletion
case "\u274C": // Red X
if ((msg = await _data.GetMessage(evt.Message.Id)) != null)
if ((msg = await GetMessage()) != null)
await HandleDeleteReaction(evt, msg);
break;
case "\u2753": // Red question mark
case "\u2754": // White question mark
if ((msg = await _data.GetMessage(evt.Message.Id)) != null)
if ((msg = await GetMessage()) != null)
await HandleQueryReaction(evt, msg);
break;
@@ -62,7 +67,7 @@ namespace PluralKit.Bot
case "\U0001F3D3": // Ping pong paddle (lol)
case "\u23F0": // Alarm clock
case "\u2757": // Exclamation mark
if ((msg = await _data.GetMessage(evt.Message.Id)) != null)
if ((msg = await GetMessage()) != null)
await HandlePingReaction(evt, msg);
break;
}
@@ -84,7 +89,7 @@ namespace PluralKit.Bot
// Message was deleted by something/someone else before we got to it
}
await _data.DeleteMessage(evt.Message.Id);
await _db.Execute(c => _repo.DeleteMessage(c, evt.Message.Id));
}
private async ValueTask HandleQueryReaction(MessageReactionAddEventArgs evt, FullMessage msg)