Extract system/member guild settings and refactor DB access

(also refactor MemberAvatar now that I'm here)
This commit is contained in:
Ske
2020-06-13 16:03:57 +02:00
parent ed511a6236
commit a915ddb41c
13 changed files with 247 additions and 272 deletions

View File

@@ -0,0 +1,19 @@
#nullable enable
namespace PluralKit.Core
{
public class MemberGuildSettings
{
public int Member { get; }
public ulong Guild { get; }
public string? DisplayName { get; }
public string? AvatarUrl { get; }
public MemberGuildSettings() { }
public MemberGuildSettings(int member, ulong guild)
{
Member = member;
Guild = guild;
}
}
}

View File

@@ -1,4 +1,5 @@
using System;
#nullable enable
using System;
using System.Data;
using System.Threading.Tasks;
@@ -8,7 +9,21 @@ namespace PluralKit.Core
{
public static class ModelQueryExt
{
public static Task<PKMember?> QueryMember(this IDbConnection conn, int id) =>
conn.QueryFirstOrDefaultAsync<PKMember?>("select * from members where id = @id", new {id});
public static Task<GuildConfig> QueryOrInsertGuildConfig(this IDbConnection conn, ulong guild) =>
conn.QueryFirstOrDefaultAsync<GuildConfig>("insert into servers (id) values (@Guild) on conflict do nothing returning *", new {Guild = guild});
conn.QueryFirstAsync<GuildConfig>("insert into servers (id) values (@Guild) on conflict do nothing returning *", new {Guild = guild});
public static Task<SystemGuildSettings> QueryOrInsertSystemGuildConfig(this IDbConnection conn, ulong guild, int system) =>
conn.QueryFirstAsync<SystemGuildSettings>(
"insert into member_guild (guild, member) values (@guild, @member) on conflict (guild, member) do update set guild = @guild, member = @member returning *",
new {guild, system});
public static Task<MemberGuildSettings> QueryOrInsertMemberGuildConfig(
this IDbConnection conn, ulong guild, int member) =>
conn.QueryFirstAsync<MemberGuildSettings>(
"insert into member_guild (guild, member) values (@guild, @member) on conflict (guild, member) do update set guild = @guild, member = @member returning *",
new {guild, member});
}
}

View File

@@ -0,0 +1,11 @@
namespace PluralKit.Core
{
public class SystemGuildSettings
{
public ulong Guild { get; }
public bool ProxyEnabled { get; } = true;
public AutoproxyMode AutoproxyMode { get; } = AutoproxyMode.Off;
public int? AutoproxyMember { get; }
}
}