Add td_api::searchUserByToken.
This commit is contained in:
parent
b340e559bb
commit
6977ac94ed
@ -6370,9 +6370,13 @@ resendChangePhoneNumberCode = AuthenticationCodeInfo;
|
||||
//@description Checks the authentication code sent to confirm a new phone number of the user @code Authentication code to check
|
||||
checkChangePhoneNumberCode code:string = Ok;
|
||||
|
||||
|
||||
//@description Returns an HTTPS link, which can be used to get information about the current user
|
||||
getUserLink = UserLink;
|
||||
|
||||
//@description Searches a user by a token from the user's link @token Token to search for
|
||||
searchUserByToken token:string = User;
|
||||
|
||||
|
||||
//@description Sets the list of commands supported by the bot for the given user scope and language; for bots only
|
||||
//@scope The scope to which the commands are relevant; pass null to change commands in the default bot command scope
|
||||
|
@ -618,6 +618,36 @@ class ExportContactTokenQuery final : public Td::ResultHandler {
|
||||
}
|
||||
};
|
||||
|
||||
class ImportContactTokenQuery final : public Td::ResultHandler {
|
||||
Promise<td_api::object_ptr<td_api::user>> promise_;
|
||||
|
||||
public:
|
||||
explicit ImportContactTokenQuery(Promise<td_api::object_ptr<td_api::user>> &&promise) : promise_(std::move(promise)) {
|
||||
}
|
||||
|
||||
void send(const string &token) {
|
||||
send_query(G()->net_query_creator().create(telegram_api::contacts_importContactToken(token)));
|
||||
}
|
||||
|
||||
void on_result(BufferSlice packet) final {
|
||||
auto result_ptr = fetch_result<telegram_api::contacts_importContactToken>(packet);
|
||||
if (result_ptr.is_error()) {
|
||||
return on_error(result_ptr.move_as_error());
|
||||
}
|
||||
|
||||
auto user = result_ptr.move_as_ok();
|
||||
LOG(DEBUG) << "Receive result for ImportContactTokenQuery: " << to_string(user);
|
||||
|
||||
auto user_id = ContactsManager::get_user_id(user);
|
||||
td_->contacts_manager_->on_get_user(std::move(user), "ImportContactTokenQuery");
|
||||
promise_.set_value(td_->contacts_manager_->get_user_object(user_id));
|
||||
}
|
||||
|
||||
void on_error(Status status) final {
|
||||
promise_.set_error(std::move(status));
|
||||
}
|
||||
};
|
||||
|
||||
void set_default_message_ttl(Td *td, int32 message_ttl, Promise<Unit> &&promise) {
|
||||
td->create_handler<SetDefaultHistoryTtlQuery>(std::move(promise))->send(message_ttl);
|
||||
}
|
||||
@ -701,4 +731,8 @@ void export_contact_token(Td *td, Promise<td_api::object_ptr<td_api::userLink>>
|
||||
td->create_handler<ExportContactTokenQuery>(std::move(promise))->send();
|
||||
}
|
||||
|
||||
void import_contact_token(Td *td, const string &token, Promise<td_api::object_ptr<td_api::user>> &&promise) {
|
||||
td->create_handler<ImportContactTokenQuery>(std::move(promise))->send(token);
|
||||
}
|
||||
|
||||
} // namespace td
|
||||
|
@ -52,4 +52,6 @@ void set_default_channel_administrator_rights(Td *td, AdministratorRights admini
|
||||
|
||||
void export_contact_token(Td *td, Promise<td_api::object_ptr<td_api::userLink>> &&promise);
|
||||
|
||||
void import_contact_token(Td *td, const string &token, Promise<td_api::object_ptr<td_api::user>> &&promise);
|
||||
|
||||
} // namespace td
|
||||
|
@ -3402,7 +3402,7 @@ class GetSupportUserQuery final : public Td::ResultHandler {
|
||||
LOG(INFO) << "Receive result for GetSupportUserQuery: " << to_string(ptr);
|
||||
|
||||
auto user_id = ContactsManager::get_user_id(ptr->user_);
|
||||
td_->contacts_manager_->on_get_user(std::move(ptr->user_), "GetSupportUserQuery", false);
|
||||
td_->contacts_manager_->on_get_user(std::move(ptr->user_), "GetSupportUserQuery");
|
||||
|
||||
promise_.set_value(std::move(user_id));
|
||||
}
|
||||
@ -15428,6 +15428,10 @@ void ContactsManager::get_user_link_impl(Promise<td_api::object_ptr<td_api::user
|
||||
export_contact_token(td_, std::move(promise));
|
||||
}
|
||||
|
||||
void ContactsManager::search_user_by_token(string token, Promise<td_api::object_ptr<td_api::user>> &&promise) {
|
||||
import_contact_token(td_, token, std::move(promise));
|
||||
}
|
||||
|
||||
void ContactsManager::send_get_me_query(Td *td, Promise<Unit> &&promise) {
|
||||
vector<tl_object_ptr<telegram_api::InputUser>> users;
|
||||
users.push_back(make_tl_object<telegram_api::inputUserSelf>());
|
||||
|
@ -540,6 +540,8 @@ class ContactsManager final : public Actor {
|
||||
|
||||
void get_user_link(Promise<td_api::object_ptr<td_api::userLink>> &&promise);
|
||||
|
||||
void search_user_by_token(string token, Promise<td_api::object_ptr<td_api::user>> &&promise);
|
||||
|
||||
static void send_get_me_query(Td *td, Promise<Unit> &&promise);
|
||||
UserId get_me(Promise<Unit> &&promise);
|
||||
bool get_user(UserId user_id, int left_tries, Promise<Unit> &&promise);
|
||||
|
@ -4536,6 +4536,13 @@ void Td::on_request(uint64 id, const td_api::getUserLink &request) {
|
||||
contacts_manager_->get_user_link(std::move(promise));
|
||||
}
|
||||
|
||||
void Td::on_request(uint64 id, td_api::searchUserByToken &request) {
|
||||
CHECK_IS_USER();
|
||||
CLEAN_INPUT_STRING(request.token_);
|
||||
CREATE_REQUEST_PROMISE();
|
||||
contacts_manager_->search_user_by_token(std::move(request.token_), std::move(promise));
|
||||
}
|
||||
|
||||
void Td::on_request(uint64 id, const td_api::getActiveSessions &request) {
|
||||
CHECK_IS_USER();
|
||||
CREATE_REQUEST_PROMISE();
|
||||
|
@ -488,6 +488,8 @@ class Td final : public Actor {
|
||||
|
||||
void on_request(uint64 id, const td_api::getUserLink &request);
|
||||
|
||||
void on_request(uint64 id, td_api::searchUserByToken &request);
|
||||
|
||||
void on_request(uint64 id, const td_api::getActiveSessions &request);
|
||||
|
||||
void on_request(uint64 id, const td_api::terminateSession &request);
|
||||
|
@ -2173,6 +2173,8 @@ class CliClient final : public Actor {
|
||||
}
|
||||
} else if (op == "gul") {
|
||||
send_request(td_api::make_object<td_api::getUserLink>());
|
||||
} else if (op == "subt") {
|
||||
send_request(td_api::make_object<td_api::searchUserByToken>(args));
|
||||
} else if (op == "AddContact") {
|
||||
UserId user_id;
|
||||
string first_name;
|
||||
|
Loading…
x
Reference in New Issue
Block a user