diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-11-29 15:53:02 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-11-29 15:53:02 -0500 |
commit | 573a61919149d8d0119601a06e23322b71c778c3 (patch) | |
tree | 0f9fd234f4b7f5c409172a5d6afe9897b6f88097 /src/discord/store.cpp | |
parent | 77dd9fabfa054bd8fa24f869b976da7ee69c8a87 (diff) | |
parent | c5807a3463aaefc89e2432730b997437305af59a (diff) | |
download | abaddon-portaudio-573a61919149d8d0119601a06e23322b71c778c3.tar.gz abaddon-portaudio-573a61919149d8d0119601a06e23322b71c778c3.zip |
Merge branch 'master' into keychain
Diffstat (limited to 'src/discord/store.cpp')
-rw-r--r-- | src/discord/store.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/discord/store.cpp b/src/discord/store.cpp index 663d113..892f4aa 100644 --- a/src/discord/store.cpp +++ b/src/discord/store.cpp @@ -254,6 +254,14 @@ void Store::SetGuildMember(Snowflake guild_id, Snowflake user_id, const GuildMem s->Reset(); { + auto &s = m_stmt_clr_member_roles; + s->Bind(1, user_id); + s->Bind(2, guild_id); + s->Step(); + s->Reset(); + } + + { auto &s = m_stmt_set_member_roles; BeginTransaction(); @@ -1882,6 +1890,20 @@ bool Store::CreateStatements() { return false; } + m_stmt_clr_member_roles = std::make_unique<Statement>(m_db, R"( + DELETE FROM member_roles + WHERE user = ? AND + EXISTS ( + SELECT 1 FROM roles + WHERE member_roles.role = roles.id + AND roles.guild = ? + ) + )"); + if (!m_stmt_clr_member_roles->OK()) { + fprintf(stderr, "failed to prepare clear member roles statement: %s\n", m_db.ErrStr()); + return false; + } + m_stmt_set_guild_emoji = std::make_unique<Statement>(m_db, R"( REPLACE INTO guild_emojis VALUES ( ?, ? |