summaryrefslogtreecommitdiff
path: root/discord
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-02-08 15:57:55 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2021-02-08 15:57:55 -0500
commit2ddac42575aee5370d01701ce50444713d4d44b9 (patch)
tree019036c715c0c163d36f2137d340395cb600367d /discord
parent6896db53d672bc5b94eeb66e9fda85f6a4c81c8f (diff)
downloadabaddon-portaudio-2ddac42575aee5370d01701ce50444713d4d44b9.tar.gz
abaddon-portaudio-2ddac42575aee5370d01701ce50444713d4d44b9.zip
show mutual friends
Diffstat (limited to 'discord')
-rw-r--r--discord/discord.cpp10
-rw-r--r--discord/discord.hpp1
-rw-r--r--discord/objects.cpp4
-rw-r--r--discord/objects.hpp6
4 files changed, 21 insertions, 0 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp
index 29e1101..eb323f9 100644
--- a/discord/discord.cpp
+++ b/discord/discord.cpp
@@ -599,6 +599,16 @@ void DiscordClient::SetUserNote(Snowflake user_id, std::string note, sigc::slot<
});
}
+void DiscordClient::FetchUserRelationships(Snowflake user_id, sigc::slot<void(std::vector<UserData>)> callback) {
+ m_http.MakeGET("/users/" + std::to_string(user_id) + "/relationships", [this, callback](const http::response_type &response) {
+ if (!CheckCode(response)) return;
+ RelationshipsData data = nlohmann::json::parse(response.text);
+ for (const auto &user : data.Users)
+ m_store.SetUser(user.ID, user);
+ callback(data.Users);
+ });
+}
+
void DiscordClient::UpdateToken(std::string token) {
if (!IsStarted()) {
m_token = token;
diff --git a/discord/discord.hpp b/discord/discord.hpp
index b973064..1601a21 100644
--- a/discord/discord.hpp
+++ b/discord/discord.hpp
@@ -134,6 +134,7 @@ public:
void FetchUserNote(Snowflake user_id, sigc::slot<void(std::string note)> callback);
void SetUserNote(Snowflake user_id, std::string note);
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 UpdateToken(std::string token);
void SetUserAgent(std::string agent);
diff --git a/discord/objects.cpp b/discord/objects.cpp
index 8303279..09f7939 100644
--- a/discord/objects.cpp
+++ b/discord/objects.cpp
@@ -337,3 +337,7 @@ void from_json(const nlohmann::json &j, UserNoteUpdateMessage &m) {
JS_D("note", m.Note);
JS_D("id", m.ID);
}
+
+void from_json(const nlohmann::json &j, RelationshipsData &m) {
+ j.get_to(m.Users);
+}
diff --git a/discord/objects.hpp b/discord/objects.hpp
index 179cfbf..85f940f 100644
--- a/discord/objects.hpp
+++ b/discord/objects.hpp
@@ -473,3 +473,9 @@ struct UserNoteUpdateMessage {
friend void from_json(const nlohmann::json &j, UserNoteUpdateMessage &m);
};
+
+struct RelationshipsData {
+ std::vector<UserData> Users;
+
+ friend void from_json(const nlohmann::json &j, RelationshipsData &m);
+};