2020-06-13 14:03:57 +00:00
#nullable enable
using System ;
2020-06-13 11:58:27 +00:00
using System.Data ;
using System.Threading.Tasks ;
using Dapper ;
namespace PluralKit.Core
{
public static class ModelQueryExt
{
2020-06-13 14:03:57 +00:00
public static Task < PKMember ? > QueryMember ( this IDbConnection conn , int id ) = >
conn . QueryFirstOrDefaultAsync < PKMember ? > ( "select * from members where id = @id" , new { id } ) ;
2020-06-13 11:58:27 +00:00
public static Task < GuildConfig > QueryOrInsertGuildConfig ( this IDbConnection conn , ulong guild ) = >
2020-06-13 14:03:57 +00:00
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 } ) ;
2020-06-13 11:58:27 +00:00
}
}