add ability to remove relationships

This commit is contained in:
ouwou
2021-05-09 02:55:35 -04:00
parent ae3b256746
commit e6a20e5984
4 changed files with 60 additions and 2 deletions

View File

@@ -691,6 +691,12 @@ std::optional<GuildApplicationData> DiscordClient::GetGuildApplication(Snowflake
return it->second;
}
void DiscordClient::RemoveRelationship(Snowflake id, sigc::slot<void(bool success)> callback) {
m_http.MakeDELETE("/users/@me/relationships/" + std::to_string(id), [this, callback](const http::response_type &response) {
callback(CheckCode(response));
});
}
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;
@@ -862,6 +868,12 @@ std::unordered_set<Snowflake> DiscordClient::GetRelationships(RelationshipType t
return ret;
}
std::optional<RelationshipType> DiscordClient::GetRelationship(Snowflake id) const {
if (auto it = m_user_relationships.find(id); it != m_user_relationships.end())
return it->second;
return std::nullopt;
}
void DiscordClient::HandleGatewayMessageRaw(std::string str) {
// handles multiple zlib compressed messages, calling HandleGatewayMessage when a full message is received
std::vector<uint8_t> buf(str.begin(), str.end());