Migrate GetSystemById

This commit is contained in:
Ske 2020-06-13 19:42:04 +02:00
parent 511cf0ab55
commit c927967c3b
5 changed files with 11 additions and 12 deletions

View File

@ -8,12 +8,14 @@ namespace PluralKit.Bot
public class Member
{
private IDataStore _data;
private IDatabase _db;
private EmbedService _embeds;
public Member(IDataStore data, EmbedService embeds)
public Member(IDataStore data, EmbedService embeds, IDatabase db)
{
_data = data;
_embeds = embeds;
_db = db;
}
public async Task NewMember(Context ctx) {
@ -66,7 +68,8 @@ namespace PluralKit.Bot
public async Task ViewMember(Context ctx, PKMember target)
{
var system = await _data.GetSystemById(target.System);
var system = await _db.Execute(c => c.QuerySystem(target.System));
await ctx.Reply(embed: await _embeds.CreateMemberEmbed(system, target, ctx.Guild, ctx.LookupContextFor(system)));
}
}

View File

@ -94,7 +94,7 @@ namespace PluralKit.Bot
try
{
var system = ctx.SystemId != null ? await _data.GetSystemById(ctx.SystemId.Value) : null;
var system = ctx.SystemId != null ? await _db.Execute(c => c.QuerySystem(ctx.SystemId.Value)) : null;
await _tree.ExecuteCommand(new Context(_services, evt.Client, evt.Message, argPos, system, ctx));
}
catch (PKError)

View File

@ -41,8 +41,8 @@ namespace PluralKit.Bot {
// Send embed!
await using var conn = await _db.Obtain();
var embed = _embed.CreateLoggedMessageEmbed(await _data.GetSystemById(ctx.SystemId.Value),
await _data.GetMemberById(proxy.Member.Id), hookMessage, trigger.Id, trigger.Author, proxy.Content,
var embed = _embed.CreateLoggedMessageEmbed(await conn.QuerySystem(ctx.SystemId.Value),
await conn.QueryMember(proxy.Member.Id), hookMessage, trigger.Id, trigger.Author, proxy.Content,
trigger.Channel);
var url = $"https://discord.com/channels/{trigger.Channel.GuildId}/{trigger.ChannelId}/{hookMessage}";
await logChannel.SendMessageAsync(content: url, embed: embed);

View File

@ -1,5 +1,4 @@
#nullable enable
using System.Data;
using System.Threading.Tasks;
using Dapper;
@ -8,6 +7,9 @@ namespace PluralKit.Core
{
public static class ModelQueryExt
{
public static Task<PKSystem?> QuerySystem(this IPKConnection conn, int id) =>
conn.QueryFirstOrDefaultAsync<PKSystem?>("select * from systems where id = @id", new {id});
public static Task<PKMember?> QueryMember(this IPKConnection conn, int id) =>
conn.QueryFirstOrDefaultAsync<PKMember?>("select * from members where id = @id", new {id});

View File

@ -51,12 +51,6 @@ namespace PluralKit.Core {
public interface IDataStore
{
/// <summary>
/// Gets a system by its internal system ID.
/// </summary>
/// <returns>The <see cref="PKSystem"/> with the given internal ID, or null if no system was found.</returns>
Task<PKSystem> GetSystemById(int systemId);
/// <summary>
/// Gets a system by its user-facing human ID.
/// </summary>