Add autoproxy management commands
This commit is contained in:
@@ -6,8 +6,10 @@
|
||||
alter table system_guild add column autoproxy_mode int check (autoproxy_mode in (1, 2, 3, 4)) not null default 1;
|
||||
|
||||
-- for member mode
|
||||
alter table system_guild add column autoproxy_member nullable references members (id) on delete set null;
|
||||
alter table system_guild add column autoproxy_member int references members (id) on delete set null;
|
||||
|
||||
-- for latch mode
|
||||
-- not *really* nullable, null just means old (pre-schema-change) data.
|
||||
alter table messages add column guild bigint nullable default null;
|
||||
alter table messages add column guild bigint default null;
|
||||
|
||||
update info set schema_version = 3;
|
||||
@@ -10,7 +10,7 @@ using Serilog;
|
||||
namespace PluralKit {
|
||||
public class SchemaService
|
||||
{
|
||||
private const int TargetSchemaVersion = 2;
|
||||
private const int TargetSchemaVersion = 3;
|
||||
|
||||
private DbConnectionFactory _conn;
|
||||
private ILogger _logger;
|
||||
|
||||
@@ -77,9 +77,9 @@ namespace PluralKit {
|
||||
public class SystemGuildSettings
|
||||
{
|
||||
public bool ProxyEnabled { get; set; } = true;
|
||||
|
||||
public AutoproxyMode AutoproxyMode { get; set; }
|
||||
public int AutoproxyMember { get; set; }
|
||||
|
||||
public AutoproxyMode AutoproxyMode { get; set; } = AutoproxyMode.Off;
|
||||
public int? AutoproxyMember { get; set; }
|
||||
}
|
||||
|
||||
public class MemberGuildSettings
|
||||
@@ -446,11 +446,13 @@ namespace PluralKit {
|
||||
public async Task SetSystemGuildSettings(PKSystem system, ulong guild, SystemGuildSettings settings)
|
||||
{
|
||||
using (var conn = await _conn.Obtain())
|
||||
await conn.ExecuteAsync("insert into system_guild (system, guild, proxy_enabled) values (@System, @Guild, @ProxyEnabled) on conflict (system, guild) do update set proxy_enabled = @ProxyEnabled", new
|
||||
await conn.ExecuteAsync("insert into system_guild (system, guild, proxy_enabled, autoproxy_mode, autoproxy_member) values (@System, @Guild, @ProxyEnabled, @AutoproxyMode, @AutoproxyMember) on conflict (system, guild) do update set proxy_enabled = @ProxyEnabled, autoproxy_mode = @AutoproxyMode, autoproxy_member = @AutoproxyMember", new
|
||||
{
|
||||
System = system.Id,
|
||||
Guild = guild,
|
||||
ProxyEnabled = settings.ProxyEnabled
|
||||
settings.ProxyEnabled,
|
||||
settings.AutoproxyMode,
|
||||
settings.AutoproxyMember
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user