diff options
Diffstat (limited to 'discord')
-rw-r--r-- | discord/discord.cpp | 12 | ||||
-rw-r--r-- | discord/discord.hpp | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp index 3c5baed..b11120a 100644 --- a/discord/discord.cpp +++ b/discord/discord.cpp @@ -710,6 +710,18 @@ void DiscordClient::PutRelationship(Snowflake id, sigc::slot<void(bool success, }); } +void DiscordClient::FetchPinned(Snowflake id, sigc::slot<void(std::vector<Message>, DiscordError code)> callback) { + m_http.MakeGET("/channels/" + std::to_string(id) + "/pins", [this, callback](const http::response_type &response) { + if (!CheckCode(response)) { + callback({}, GetCodeFromResponse(response)); + return; + } + + auto data = nlohmann::json::parse(response.text).get<std::vector<Message>>(); + callback(std::move(data), DiscordError::NONE); + }); +} + bool DiscordClient::CanModifyRole(Snowflake guild_id, Snowflake role_id, Snowflake user_id) const { const auto guild = *GetGuild(guild_id); if (guild.OwnerID == user_id) return true; diff --git a/discord/discord.hpp b/discord/discord.hpp index a3f72ba..28f7fb6 100644 --- a/discord/discord.hpp +++ b/discord/discord.hpp @@ -170,6 +170,8 @@ public: void SetUserNote(Snowflake user_id, std::string note, sigc::slot<void(bool success)> callback); void FetchUserRelationships(Snowflake user_id, sigc::slot<void(std::vector<UserData>)> callback); + void FetchPinned(Snowflake id, sigc::slot<void(std::vector<Message>, DiscordError code)> callback); + void GetVerificationGateInfo(Snowflake guild_id, sigc::slot<void(std::optional<VerificationGateInfoObject>)> callback); void AcceptVerificationGate(Snowflake guild_id, VerificationGateInfoObject info, sigc::slot<void(bool success)> callback); |