void CallbackQueriesManager::on_new_query(int32 flags, int64 callback_query_id, UserId sender_user_id, DialogId dialog_id, MessageId message_id, BufferSlice &&data, int64 chat_instance, string &&game_short_name) { if (!dialog_id.is_valid()) { LOG(ERROR) << "Receive new callback query in invalid " << dialog_id; return; } if (!sender_user_id.is_valid()) { LOG(ERROR) << "Receive new callback query from invalid " << sender_user_id << " in " << dialog_id; return; } LOG_IF(ERROR, !td_->contacts_manager_->have_user(sender_user_id)) << "Have no info about " << sender_user_id; if (!td_->auth_manager_->is_bot()) { LOG(ERROR) << "Receive new callback query"; return; } if (!message_id.is_valid()) { LOG(ERROR) << "Receive new callback query from " << message_id << " in " << dialog_id << " sent by " << sender_user_id; return; } auto payload = get_query_payload(flags, std::move(data), std::move(game_short_name)); if (payload == nullptr) { return; } td_->messages_manager_->force_create_dialog(dialog_id, "on_new_callback_query"); send_closure( G()->td(), &Td::send_update, make_tl_object<td_api::updateNewCallbackQuery>( callback_query_id, td_->contacts_manager_->get_user_id_object(sender_user_id, "updateNewCallbackQuery"), dialog_id.get(), message_id.get(), chat_instance, std::move(payload))); }