From 655194c8418074193c0b5258c8fc2f884afa1ddc Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 11 Aug 2022 09:57:46 +0300 Subject: [PATCH] Return ApiWrap::requestPeerSettings method. --- Telegram/SourceFiles/apiwrap.cpp | 18 ++++++++++++++++++ Telegram/SourceFiles/apiwrap.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index f9a11c04d..ef0d5e979 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -1131,6 +1131,24 @@ void ApiWrap::gotUserFull( Data::PeerUpdate::Flag::FullInfo); } +void ApiWrap::requestPeerSettings(not_null peer) { + if (!_requestedPeerSettings.emplace(peer).second) { + return; + } + request(MTPmessages_GetPeerSettings( + peer->input + )).done([=](const MTPmessages_PeerSettings &result) { + result.match([&](const MTPDmessages_peerSettings &data) { + _session->data().processUsers(data.vusers()); + _session->data().processChats(data.vchats()); + peer->setSettings(data.vsettings()); + _requestedPeerSettings.erase(peer); + }); + }).fail([=] { + _requestedPeerSettings.erase(peer); + }).send(); +} + void ApiWrap::migrateChat( not_null chat, FnMut)> done, diff --git a/Telegram/SourceFiles/apiwrap.h b/Telegram/SourceFiles/apiwrap.h index bd4acdf52..d54a83d18 100644 --- a/Telegram/SourceFiles/apiwrap.h +++ b/Telegram/SourceFiles/apiwrap.h @@ -174,6 +174,7 @@ public: Fn fail); void requestFullPeer(not_null peer); + void requestPeerSettings(not_null peer); using UpdatedFileReferences = Data::UpdatedFileReferences; using FileReferencesHandler = FnMut; @@ -535,6 +536,7 @@ private: using PeerRequests = base::flat_map; PeerRequests _fullPeerRequests; + base::flat_set> _requestedPeerSettings; base::flat_map< not_null,