summaryrefslogtreecommitdiff
path: root/discord/discord.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-05-11 04:06:23 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-05-11 04:06:23 -0400
commit858fd8ce626d3f3c5ef3c4349612e520f07eff6a (patch)
tree26e0f11c614fc6a0a776d181924d4beb796859bc /discord/discord.cpp
parent06ba3acc93ed57cb41e319eb5f7da06d15b72ec2 (diff)
downloadabaddon-portaudio-858fd8ce626d3f3c5ef3c4349612e520f07eff6a.tar.gz
abaddon-portaudio-858fd8ce626d3f3c5ef3c4349612e520f07eff6a.zip
friends: accept incoming
Diffstat (limited to 'discord/discord.cpp')
-rw-r--r--discord/discord.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp
index 0cf813a..0e06e39 100644
--- a/discord/discord.cpp
+++ b/discord/discord.cpp
@@ -702,17 +702,19 @@ void DiscordClient::SendFriendRequest(const Glib::ustring &username, int discrim
obj.Username = username;
obj.Discriminator = discriminator;
m_http.MakePOST("/users/@me/relationships", nlohmann::json(obj).dump(), [this, callback](const http::response_type &response) {
- if (CheckCode(response, 204)) {
+ if (CheckCode(response, 204))
callback(true, DiscordError::NONE);
- } else {
- auto code = DiscordError::GENERIC;
- try {
- // pull me somewhere else?
- const auto data = nlohmann::json::parse(response.text);
- data.at("code").get_to(code);
- } catch (...) {}
- callback(false, code);
- }
+ else
+ callback(false, GetCodeFromResponse(response));
+ });
+}
+
+void DiscordClient::PutRelationship(Snowflake id, sigc::slot<void(bool success, DiscordError code)> callback) {
+ m_http.MakePUT("/users/@me/relationships/" + std::to_string(id), "{}", [this, callback](const http::response_type &response) {
+ if (CheckCode(response, 204))
+ callback(true, DiscordError::NONE);
+ else
+ callback(false, GetCodeFromResponse(response));
});
}
@@ -1102,6 +1104,15 @@ void DiscordClient::HandleGatewayHello(const GatewayMessage &msg) {
SendIdentify();
}
+DiscordError DiscordClient::GetCodeFromResponse(const http::response_type &response) {
+ try {
+ // pull me somewhere else?
+ const auto data = nlohmann::json::parse(response.text);
+ return data.at("code").get<DiscordError>();
+ } catch (...) {}
+ return DiscordError::GENERIC;
+}
+
void DiscordClient::ProcessNewGuild(GuildData &guild) {
if (guild.IsUnavailable) {
printf("guild (%lld) unavailable\n", static_cast<uint64_t>(guild.ID));