diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2023-02-07 15:03:03 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2023-02-07 15:03:03 -0500 |
commit | c1303bd289013a504b529f8f19444f12e4884040 (patch) | |
tree | 9318ba0b3b660264cba5c4a467b6f79cf80188e0 /src/discord/store.cpp | |
parent | ea04035f0db8fa990dd7ca8dd1a64f56bceb82e2 (diff) | |
parent | 4dd0eb24c40a7276dea4fc349d885f4277795dcb (diff) | |
download | abaddon-portaudio-c1303bd289013a504b529f8f19444f12e4884040.tar.gz abaddon-portaudio-c1303bd289013a504b529f8f19444f12e4884040.zip |
Merge branch 'master' into voice
Diffstat (limited to 'src/discord/store.cpp')
-rw-r--r-- | src/discord/store.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/discord/store.cpp b/src/discord/store.cpp index 892f4aa..7f674c4 100644 --- a/src/discord/store.cpp +++ b/src/discord/store.cpp @@ -473,6 +473,40 @@ std::vector<BanData> Store::GetBans(Snowflake guild_id) const { return ret; } +Snowflake Store::GetGuildOwner(Snowflake guild_id) const { + auto &s = m_stmt_get_guild_owner; + + s->Bind(1, guild_id); + if (s->FetchOne()) { + Snowflake ret; + s->Get(0, ret); + s->Reset(); + return ret; + } + + s->Reset(); + + return Snowflake::Invalid; +} + +std::vector<Snowflake> Store::GetMemberRoles(Snowflake guild_id, Snowflake user_id) const { + std::vector<Snowflake> ret; + + auto &s = m_stmt_get_member_roles; + + s->Bind(1, user_id); + s->Bind(2, guild_id); + + while (s->FetchOne()) { + auto &f = ret.emplace_back(); + s->Get(0, f); + } + + s->Reset(); + + return ret; +} + std::vector<Message> Store::GetLastMessages(Snowflake id, size_t num) const { auto &s = m_stmt_get_last_msgs; std::vector<Message> msgs; @@ -2198,6 +2232,14 @@ bool Store::CreateStatements() { return false; } + m_stmt_get_guild_owner = std::make_unique<Statement>(m_db, R"( + SELECT owner_id FROM guilds WHERE id = ? + )"); + if (!m_stmt_get_guild_owner->OK()) { + fprintf(stderr, "failed to prepare get guild owner statement: %s\n", m_db.ErrStr()); + return false; + } + return true; } |