summaryrefslogtreecommitdiff
path: root/src/discord
diff options
context:
space:
mode:
Diffstat (limited to 'src/discord')
-rw-r--r--src/discord/discord.cpp13
-rw-r--r--src/discord/discord.hpp1
2 files changed, 14 insertions, 0 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp
index f920099..a90fc50 100644
--- a/src/discord/discord.cpp
+++ b/src/discord/discord.cpp
@@ -292,6 +292,19 @@ void DiscordClient::GetArchivedPublicThreads(Snowflake channel_id, sigc::slot<vo
});
}
+void DiscordClient::GetArchivedPrivateThreads(Snowflake channel_id, sigc::slot<void(DiscordError, const ArchivedThreadsResponseData &)> callback) {
+ m_http.MakeGET("/channels/" + std::to_string(channel_id) + "/users/@me/threads/archived/private", [this, callback](const http::response_type &r) {
+ if (CheckCode(r)) {
+ const auto data = nlohmann::json::parse(r.text).get<ArchivedThreadsResponseData>();
+ for (const auto &thread : data.Threads)
+ m_store.SetChannel(thread.ID, thread);
+ callback(DiscordError::NONE, data);
+ } else {
+ callback(GetCodeFromResponse(r), {});
+ }
+ });
+}
+
bool DiscordClient::IsThreadJoined(Snowflake thread_id) const {
return std::find(m_joined_threads.begin(), m_joined_threads.end(), thread_id) != m_joined_threads.end();
}
diff --git a/src/discord/discord.hpp b/src/discord/discord.hpp
index 4b9bc82..4010977 100644
--- a/src/discord/discord.hpp
+++ b/src/discord/discord.hpp
@@ -81,6 +81,7 @@ public:
std::vector<Snowflake> GetUsersInThread(Snowflake id) const;
std::vector<ChannelData> GetActiveThreads(Snowflake channel_id) const;
void GetArchivedPublicThreads(Snowflake channel_id, sigc::slot<void(DiscordError, const ArchivedThreadsResponseData &)> callback);
+ void GetArchivedPrivateThreads(Snowflake channel_id, sigc::slot<void(DiscordError, const ArchivedThreadsResponseData &)> callback);
bool IsThreadJoined(Snowflake thread_id) const;
bool HasGuildPermission(Snowflake user_id, Snowflake guild_id, Permission perm) const;