Add td_api::deleteChatFilter.
GitOrigin-RevId: ceb3700d72271c6b570d258f6cf5e46f50d80b07
This commit is contained in:
parent
49ccb05176
commit
d2b53fc023
@ -3715,6 +3715,9 @@ createChatFilter filter:chatFilter = Ok;
|
|||||||
//@description Edits existing chat filter @chat_filter_id Chat filter identifier @filter The edited chat filter
|
//@description Edits existing chat filter @chat_filter_id Chat filter identifier @filter The edited chat filter
|
||||||
editChatFilter chat_filter_id:int32 filter:chatFilter = Ok;
|
editChatFilter chat_filter_id:int32 filter:chatFilter = Ok;
|
||||||
|
|
||||||
|
//@description Deletes existing chat filter @chat_filter_id Chat filter identifier
|
||||||
|
deleteChatFilter chat_filter_id:int32 = Ok;
|
||||||
|
|
||||||
|
|
||||||
//@description Changes the chat title. Supported only for basic groups, supergroups and channels. Requires can_change_info rights. The title will not be changed until the request to the server has been completed
|
//@description Changes the chat title. Supported only for basic groups, supergroups and channels. Requires can_change_info rights. The title will not be changed until the request to the server has been completed
|
||||||
//@chat_id Chat identifier @title New title of the chat; 1-128 characters
|
//@chat_id Chat identifier @title New title of the chat; 1-128 characters
|
||||||
|
Binary file not shown.
@ -15053,6 +15053,7 @@ Result<unique_ptr<MessagesManager::DialogFilter>> MessagesManager::create_dialog
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MessagesManager::create_dialog_filter(td_api::object_ptr<td_api::chatFilter> filter, Promise<Unit> &&promise) {
|
void MessagesManager::create_dialog_filter(td_api::object_ptr<td_api::chatFilter> filter, Promise<Unit> &&promise) {
|
||||||
|
CHECK(!td_->auth_manager_->is_bot());
|
||||||
if (dialog_filters_.size() >= MAX_DIALOG_FILTERS) {
|
if (dialog_filters_.size() >= MAX_DIALOG_FILTERS) {
|
||||||
return promise.set_error(Status::Error(400, "Maximum number of chat folders exceeded"));
|
return promise.set_error(Status::Error(400, "Maximum number of chat folders exceeded"));
|
||||||
}
|
}
|
||||||
@ -15086,6 +15087,7 @@ void MessagesManager::create_dialog_filter(td_api::object_ptr<td_api::chatFilter
|
|||||||
|
|
||||||
void MessagesManager::edit_dialog_filter(DialogFilterId dialog_filter_id, td_api::object_ptr<td_api::chatFilter> filter,
|
void MessagesManager::edit_dialog_filter(DialogFilterId dialog_filter_id, td_api::object_ptr<td_api::chatFilter> filter,
|
||||||
Promise<Unit> &&promise) {
|
Promise<Unit> &&promise) {
|
||||||
|
CHECK(!td_->auth_manager_->is_bot());
|
||||||
auto old_dialog_filter = get_dialog_filter(dialog_filter_id);
|
auto old_dialog_filter = get_dialog_filter(dialog_filter_id);
|
||||||
if (old_dialog_filter == nullptr) {
|
if (old_dialog_filter == nullptr) {
|
||||||
return promise.set_error(Status::Error(400, "Chat filter not found"));
|
return promise.set_error(Status::Error(400, "Chat filter not found"));
|
||||||
@ -15139,6 +15141,41 @@ void MessagesManager::on_update_dialog_filter(unique_ptr<DialogFilter> dialog_fi
|
|||||||
promise.set_value(Unit());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MessagesManager::delete_dialog_filter(DialogFilterId dialog_filter_id, Promise<Unit> &&promise) {
|
||||||
|
CHECK(!td_->auth_manager_->is_bot());
|
||||||
|
auto dialog_filter = get_dialog_filter(dialog_filter_id);
|
||||||
|
if (dialog_filter == nullptr) {
|
||||||
|
return promise.set_value(Unit());
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO logevent
|
||||||
|
// TODO delete dialog filter locally
|
||||||
|
// TODO SequenceDispatcher
|
||||||
|
auto query_promise = PromiseCreator::lambda(
|
||||||
|
[actor_id = actor_id(this), dialog_filter_id, promise = std::move(promise)](Result<Unit> result) mutable {
|
||||||
|
send_closure(actor_id, &MessagesManager::on_delete_dialog_filter, dialog_filter_id,
|
||||||
|
result.is_error() ? result.move_as_error() : Status::OK(), std::move(promise));
|
||||||
|
});
|
||||||
|
td_->create_handler<UpdateDialogFilterQuery>(std::move(query_promise))->send(dialog_filter_id, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MessagesManager::on_delete_dialog_filter(DialogFilterId dialog_filter_id, Status result, Promise<Unit> &&promise) {
|
||||||
|
if (result.is_error()) {
|
||||||
|
return promise.set_error(result.move_as_error());
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto it = dialog_filters_.begin(); it != dialog_filters_.end(); ++it) {
|
||||||
|
if ((*it)->dialog_filter_id == dialog_filter_id) {
|
||||||
|
// TODO delete chat list
|
||||||
|
dialog_filters_.erase(it);
|
||||||
|
send_update_chat_filters(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
promise.set_value(Unit());
|
||||||
|
}
|
||||||
|
|
||||||
Status MessagesManager::delete_dialog_reply_markup(DialogId dialog_id, MessageId message_id) {
|
Status MessagesManager::delete_dialog_reply_markup(DialogId dialog_id, MessageId message_id) {
|
||||||
if (td_->auth_manager_->is_bot()) {
|
if (td_->auth_manager_->is_bot()) {
|
||||||
return Status::Error(6, "Bots can't delete chat reply markup");
|
return Status::Error(6, "Bots can't delete chat reply markup");
|
||||||
|
@ -556,6 +556,8 @@ class MessagesManager : public Actor {
|
|||||||
void edit_dialog_filter(DialogFilterId dialog_filter_id, td_api::object_ptr<td_api::chatFilter> filter,
|
void edit_dialog_filter(DialogFilterId dialog_filter_id, td_api::object_ptr<td_api::chatFilter> filter,
|
||||||
Promise<Unit> &&promise);
|
Promise<Unit> &&promise);
|
||||||
|
|
||||||
|
void delete_dialog_filter(DialogFilterId dialog_filter_id, Promise<Unit> &&promise);
|
||||||
|
|
||||||
Status delete_dialog_reply_markup(DialogId dialog_id, MessageId message_id) TD_WARN_UNUSED_RESULT;
|
Status delete_dialog_reply_markup(DialogId dialog_id, MessageId message_id) TD_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
Status set_dialog_draft_message(DialogId dialog_id,
|
Status set_dialog_draft_message(DialogId dialog_id,
|
||||||
@ -2212,6 +2214,8 @@ class MessagesManager : public Actor {
|
|||||||
|
|
||||||
void on_update_dialog_filter(unique_ptr<DialogFilter> dialog_filter, Status result, Promise<Unit> &&promise);
|
void on_update_dialog_filter(unique_ptr<DialogFilter> dialog_filter, Status result, Promise<Unit> &&promise);
|
||||||
|
|
||||||
|
void on_delete_dialog_filter(DialogFilterId dialog_filter_id, Status result, Promise<Unit> &&promise);
|
||||||
|
|
||||||
DialogFilter *get_dialog_filter(DialogFilterId dialog_filter_id);
|
DialogFilter *get_dialog_filter(DialogFilterId dialog_filter_id);
|
||||||
const DialogFilter *get_dialog_filter(DialogFilterId dialog_filter_id) const;
|
const DialogFilter *get_dialog_filter(DialogFilterId dialog_filter_id) const;
|
||||||
|
|
||||||
|
@ -5900,6 +5900,12 @@ void Td::on_request(uint64 id, td_api::editChatFilter &request) {
|
|||||||
std::move(promise));
|
std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Td::on_request(uint64 id, const td_api::deleteChatFilter &request) {
|
||||||
|
CHECK_IS_USER();
|
||||||
|
CREATE_OK_REQUEST_PROMISE();
|
||||||
|
messages_manager_->delete_dialog_filter(DialogFilterId(request.chat_filter_id_), std::move(promise));
|
||||||
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, td_api::setChatTitle &request) {
|
void Td::on_request(uint64 id, td_api::setChatTitle &request) {
|
||||||
CLEAN_INPUT_STRING(request.title_);
|
CLEAN_INPUT_STRING(request.title_);
|
||||||
CREATE_OK_REQUEST_PROMISE();
|
CREATE_OK_REQUEST_PROMISE();
|
||||||
|
@ -681,6 +681,8 @@ class Td final : public NetQueryCallback {
|
|||||||
|
|
||||||
void on_request(uint64 id, td_api::editChatFilter &request);
|
void on_request(uint64 id, td_api::editChatFilter &request);
|
||||||
|
|
||||||
|
void on_request(uint64 id, const td_api::deleteChatFilter &request);
|
||||||
|
|
||||||
void on_request(uint64 id, td_api::setChatTitle &request);
|
void on_request(uint64 id, td_api::setChatTitle &request);
|
||||||
|
|
||||||
void on_request(uint64 id, const td_api::setChatPhoto &request);
|
void on_request(uint64 id, const td_api::setChatPhoto &request);
|
||||||
|
@ -3515,6 +3515,8 @@ class CliClient final : public Actor {
|
|||||||
std::tie(chat_filter_id, filter) = split(args);
|
std::tie(chat_filter_id, filter) = split(args);
|
||||||
send_request(
|
send_request(
|
||||||
td_api::make_object<td_api::editChatFilter>(as_chat_filter_id(chat_filter_id), as_chat_filter(filter)));
|
td_api::make_object<td_api::editChatFilter>(as_chat_filter_id(chat_filter_id), as_chat_filter(filter)));
|
||||||
|
} else if (op == "dcf") {
|
||||||
|
send_request(td_api::make_object<td_api::deleteChatFilter>(as_chat_filter_id(args)));
|
||||||
} else if (op == "sct") {
|
} else if (op == "sct") {
|
||||||
string chat_id;
|
string chat_id;
|
||||||
string title;
|
string title;
|
||||||
|
Loading…
Reference in New Issue
Block a user