Improve conditions for calls to on_get_channel_error.
This commit is contained in:
parent
ca8a8ad358
commit
0a01b97921
@ -1078,6 +1078,7 @@ class ToggleSlowModeQuery final : public Td::ResultHandler {
|
|||||||
class ReportChannelSpamQuery final : public Td::ResultHandler {
|
class ReportChannelSpamQuery final : public Td::ResultHandler {
|
||||||
Promise<Unit> promise_;
|
Promise<Unit> promise_;
|
||||||
ChannelId channel_id_;
|
ChannelId channel_id_;
|
||||||
|
DialogId sender_dialog_id_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ReportChannelSpamQuery(Promise<Unit> &&promise) : promise_(std::move(promise)) {
|
explicit ReportChannelSpamQuery(Promise<Unit> &&promise) : promise_(std::move(promise)) {
|
||||||
@ -1085,6 +1086,7 @@ class ReportChannelSpamQuery final : public Td::ResultHandler {
|
|||||||
|
|
||||||
void send(ChannelId channel_id, DialogId sender_dialog_id, const vector<MessageId> &message_ids) {
|
void send(ChannelId channel_id, DialogId sender_dialog_id, const vector<MessageId> &message_ids) {
|
||||||
channel_id_ = channel_id;
|
channel_id_ = channel_id;
|
||||||
|
sender_dialog_id_ = sender_dialog_id;
|
||||||
|
|
||||||
auto input_channel = td_->contacts_manager_->get_input_channel(channel_id);
|
auto input_channel = td_->contacts_manager_->get_input_channel(channel_id);
|
||||||
CHECK(input_channel != nullptr);
|
CHECK(input_channel != nullptr);
|
||||||
@ -1109,7 +1111,9 @@ class ReportChannelSpamQuery final : public Td::ResultHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void on_error(Status status) final {
|
void on_error(Status status) final {
|
||||||
// td_->contacts_manager_->on_get_channel_error(channel_id_, status, "ReportChannelSpamQuery");
|
if (sender_dialog_id_.get_type() != DialogType::Channel) {
|
||||||
|
td_->contacts_manager_->on_get_channel_error(channel_id_, status, "ReportChannelSpamQuery");
|
||||||
|
}
|
||||||
promise_.set_error(std::move(status));
|
promise_.set_error(std::move(status));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -2126,14 +2130,16 @@ class EditChannelAdminQuery final : public Td::ResultHandler {
|
|||||||
class EditChannelBannedQuery final : public Td::ResultHandler {
|
class EditChannelBannedQuery final : public Td::ResultHandler {
|
||||||
Promise<Unit> promise_;
|
Promise<Unit> promise_;
|
||||||
ChannelId channel_id_;
|
ChannelId channel_id_;
|
||||||
|
DialogId participant_dialog_id_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit EditChannelBannedQuery(Promise<Unit> &&promise) : promise_(std::move(promise)) {
|
explicit EditChannelBannedQuery(Promise<Unit> &&promise) : promise_(std::move(promise)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void send(ChannelId channel_id, tl_object_ptr<telegram_api::InputPeer> &&input_peer,
|
void send(ChannelId channel_id, DialogId participant_dialog_id, tl_object_ptr<telegram_api::InputPeer> &&input_peer,
|
||||||
const DialogParticipantStatus &status) {
|
const DialogParticipantStatus &status) {
|
||||||
channel_id_ = channel_id;
|
channel_id_ = channel_id;
|
||||||
|
participant_dialog_id_ = participant_dialog_id;
|
||||||
auto input_channel = td_->contacts_manager_->get_input_channel(channel_id);
|
auto input_channel = td_->contacts_manager_->get_input_channel(channel_id);
|
||||||
CHECK(input_channel != nullptr);
|
CHECK(input_channel != nullptr);
|
||||||
send_query(G()->net_query_creator().create(telegram_api::channels_editBanned(
|
send_query(G()->net_query_creator().create(telegram_api::channels_editBanned(
|
||||||
@ -2153,7 +2159,9 @@ class EditChannelBannedQuery final : public Td::ResultHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void on_error(Status status) final {
|
void on_error(Status status) final {
|
||||||
td_->contacts_manager_->on_get_channel_error(channel_id_, status, "EditChannelBannedQuery");
|
if (participant_dialog_id_.get_type() != DialogType::Channel) {
|
||||||
|
td_->contacts_manager_->on_get_channel_error(channel_id_, status, "EditChannelBannedQuery");
|
||||||
|
}
|
||||||
promise_.set_error(std::move(status));
|
promise_.set_error(std::move(status));
|
||||||
td_->updates_manager_->get_difference("EditChannelBannedQuery");
|
td_->updates_manager_->get_difference("EditChannelBannedQuery");
|
||||||
}
|
}
|
||||||
@ -2736,7 +2744,9 @@ class GetChannelParticipantQuery final : public Td::ResultHandler {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// td_->contacts_manager_->on_get_channel_error(channel_id_, status, "GetChannelParticipantQuery");
|
if (participant_dialog_id_.get_type() != DialogType::Channel) {
|
||||||
|
td_->contacts_manager_->on_get_channel_error(channel_id_, status, "GetChannelParticipantQuery");
|
||||||
|
}
|
||||||
promise_.set_error(std::move(status));
|
promise_.set_error(std::move(status));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -7572,7 +7582,8 @@ void ContactsManager::restrict_channel_participant(ChannelId channel_id, DialogI
|
|||||||
if (participant_dialog_id.get_type() == DialogType::User) {
|
if (participant_dialog_id.get_type() == DialogType::User) {
|
||||||
speculative_add_channel_user(channel_id, participant_dialog_id.get_user_id(), status, old_status);
|
speculative_add_channel_user(channel_id, participant_dialog_id.get_user_id(), status, old_status);
|
||||||
}
|
}
|
||||||
td_->create_handler<EditChannelBannedQuery>(std::move(promise))->send(channel_id, std::move(input_peer), status);
|
td_->create_handler<EditChannelBannedQuery>(std::move(promise))
|
||||||
|
->send(channel_id, participant_dialog_id, std::move(input_peer), status);
|
||||||
}
|
}
|
||||||
|
|
||||||
ChannelId ContactsManager::migrate_chat_to_megagroup(ChatId chat_id, Promise<Unit> &promise) {
|
ChannelId ContactsManager::migrate_chat_to_megagroup(ChatId chat_id, Promise<Unit> &promise) {
|
||||||
|
@ -2872,12 +2872,17 @@ class BlockFromRepliesQuery final : public Td::ResultHandler {
|
|||||||
|
|
||||||
class DeleteParticipantHistoryQuery final : public Td::ResultHandler {
|
class DeleteParticipantHistoryQuery final : public Td::ResultHandler {
|
||||||
Promise<AffectedHistory> promise_;
|
Promise<AffectedHistory> promise_;
|
||||||
|
ChannelId channel_id_;
|
||||||
|
DialogId sender_dialog_id_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit DeleteParticipantHistoryQuery(Promise<AffectedHistory> &&promise) : promise_(std::move(promise)) {
|
explicit DeleteParticipantHistoryQuery(Promise<AffectedHistory> &&promise) : promise_(std::move(promise)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void send(ChannelId channel_id, DialogId sender_dialog_id) {
|
void send(ChannelId channel_id, DialogId sender_dialog_id) {
|
||||||
|
channel_id_ = channel_id;
|
||||||
|
sender_dialog_id_ = sender_dialog_id;
|
||||||
|
|
||||||
auto input_channel = td_->contacts_manager_->get_input_channel(channel_id);
|
auto input_channel = td_->contacts_manager_->get_input_channel(channel_id);
|
||||||
if (input_channel == nullptr) {
|
if (input_channel == nullptr) {
|
||||||
return promise_.set_error(Status::Error(400, "Chat is not accessible"));
|
return promise_.set_error(Status::Error(400, "Chat is not accessible"));
|
||||||
@ -2901,7 +2906,9 @@ class DeleteParticipantHistoryQuery final : public Td::ResultHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void on_error(Status status) final {
|
void on_error(Status status) final {
|
||||||
// td_->contacts_manager_->on_get_channel_error(channel_id_, status, "DeleteParticipantHistoryQuery");
|
if (sender_dialog_id_.get_type() != DialogType::Channel) {
|
||||||
|
td_->contacts_manager_->on_get_channel_error(channel_id_, status, "DeleteParticipantHistoryQuery");
|
||||||
|
}
|
||||||
promise_.set_error(std::move(status));
|
promise_.set_error(std::move(status));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user