diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-02-08 15:57:55 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-02-08 15:57:55 -0500 |
commit | 2ddac42575aee5370d01701ce50444713d4d44b9 (patch) | |
tree | 019036c715c0c163d36f2137d340395cb600367d /discord | |
parent | 6896db53d672bc5b94eeb66e9fda85f6a4c81c8f (diff) | |
download | abaddon-portaudio-2ddac42575aee5370d01701ce50444713d4d44b9.tar.gz abaddon-portaudio-2ddac42575aee5370d01701ce50444713d4d44b9.zip |
show mutual friends
Diffstat (limited to 'discord')
-rw-r--r-- | discord/discord.cpp | 10 | ||||
-rw-r--r-- | discord/discord.hpp | 1 | ||||
-rw-r--r-- | discord/objects.cpp | 4 | ||||
-rw-r--r-- | discord/objects.hpp | 6 |
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); +}; |