aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2024-11-12 14:48:57 +0300
committerlevlam <levlam@telegram.org>2024-11-12 14:48:57 +0300
commitbf5676d4d3585791ca31d8681018dfdedf39713a (patch)
tree86a5db84a3ec70cf02efcfa2ed4e85b17011f45c
parentef266c223c7b5248a719b305ca69bfb7a02fb006 (diff)
Use TRY_RESULT_PROMISE if appropriate.
-rw-r--r--td/telegram/InlineQueriesManager.cpp9
-rw-r--r--td/telegram/PhoneNumberManager.cpp8
-rw-r--r--td/telegram/PrivacyManager.cpp6
-rw-r--r--td/telegram/SecureManager.cpp6
-rw-r--r--td/telegram/net/ConnectionCreator.cpp6
-rw-r--r--tdnet/td/net/GetHostByNameActor.cpp6
6 files changed, 10 insertions, 31 deletions
diff --git a/td/telegram/InlineQueriesManager.cpp b/td/telegram/InlineQueriesManager.cpp
index 954643dc0..f9eca30d4 100644
--- a/td/telegram/InlineQueriesManager.cpp
+++ b/td/telegram/InlineQueriesManager.cpp
@@ -1046,11 +1046,8 @@ void InlineQueriesManager::send_inline_query(UserId bot_user_id, DialogId dialog
Promise<td_api::object_ptr<td_api::inlineQueryResults>> &&promise) {
CHECK(!td_->auth_manager_->is_bot());
- auto r_bot_data = td_->user_manager_->get_bot_data(bot_user_id);
- if (r_bot_data.is_error()) {
- return promise.set_error(r_bot_data.move_as_error());
- }
- if (!r_bot_data.ok().is_inline) {
+ TRY_RESULT_PROMISE(promise, bot_data, td_->user_manager_->get_bot_data(bot_user_id));
+ if (!bot_data.is_inline) {
return promise.set_error(Status::Error(400, "Bot doesn't support inline queries"));
}
@@ -1083,7 +1080,7 @@ void InlineQueriesManager::send_inline_query(UserId bot_user_id, DialogId dialog
query_hash = query_hash * 2023654985u + bot_user_id.get();
query_hash = query_hash * 2023654985u + static_cast<uint64>(peer_type);
query_hash = query_hash * 2023654985u + Hash<string>()(offset);
- if (r_bot_data.ok().need_location) {
+ if (bot_data.need_location && !user_location.empty()) {
query_hash = query_hash * 2023654985u + static_cast<uint64>(user_location.get_latitude() * 1e4);
query_hash = query_hash * 2023654985u + static_cast<uint64>(user_location.get_longitude() * 1e4);
}
diff --git a/td/telegram/PhoneNumberManager.cpp b/td/telegram/PhoneNumberManager.cpp
index f83c5beaf..35cb7f0f3 100644
--- a/td/telegram/PhoneNumberManager.cpp
+++ b/td/telegram/PhoneNumberManager.cpp
@@ -296,12 +296,8 @@ void PhoneNumberManager::resend_authentication_code(
return promise.set_error(Status::Error(400, "Can't resend code"));
}
- auto r_resend_code = send_code_helper_.resend_code(std::move(reason));
- if (r_resend_code.is_error()) {
- return promise.set_error(r_resend_code.move_as_error());
- }
-
- send_new_send_code_query(r_resend_code.move_as_ok(), std::move(promise));
+ TRY_RESULT_PROMISE(promise, resend_code, send_code_helper_.resend_code(std::move(reason)));
+ send_new_send_code_query(std::move(resend_code), std::move(promise));
}
void PhoneNumberManager::check_code(string code, Promise<Unit> &&promise) {
diff --git a/td/telegram/PrivacyManager.cpp b/td/telegram/PrivacyManager.cpp
index 2466f7a45..dee91e6ec 100644
--- a/td/telegram/PrivacyManager.cpp
+++ b/td/telegram/PrivacyManager.cpp
@@ -88,11 +88,7 @@ void PrivacyManager::tear_down() {
void PrivacyManager::get_privacy(tl_object_ptr<td_api::UserPrivacySetting> key,
Promise<tl_object_ptr<td_api::userPrivacySettingRules>> promise) {
- auto r_user_privacy_setting = UserPrivacySetting::get_user_privacy_setting(std::move(key));
- if (r_user_privacy_setting.is_error()) {
- return promise.set_error(r_user_privacy_setting.move_as_error());
- }
- auto user_privacy_setting = r_user_privacy_setting.move_as_ok();
+ TRY_RESULT_PROMISE(promise, user_privacy_setting, UserPrivacySetting::get_user_privacy_setting(std::move(key)));
auto &info = get_info(user_privacy_setting);
if (info.is_synchronized_) {
return promise.set_value(info.rules_.get_user_privacy_setting_rules_object(td_));
diff --git a/td/telegram/SecureManager.cpp b/td/telegram/SecureManager.cpp
index b44c4ad07..18b854d5a 100644
--- a/td/telegram/SecureManager.cpp
+++ b/td/telegram/SecureManager.cpp
@@ -1284,10 +1284,8 @@ void SecureManager::send_passport_authorization_form(int32 authorization_form_id
auto query = G()->net_query_creator().create(td_query);
auto new_promise =
PromiseCreator::lambda([promise = std::move(promise)](Result<NetQueryPtr> r_net_query_ptr) mutable {
- auto r_result = fetch_result<telegram_api::account_acceptAuthorization>(std::move(r_net_query_ptr));
- if (r_result.is_error()) {
- return promise.set_error(r_result.move_as_error());
- }
+ TRY_RESULT_PROMISE(promise, result,
+ fetch_result<telegram_api::account_acceptAuthorization>(std::move(r_net_query_ptr)));
promise.set_value(Unit());
});
send_with_promise(std::move(query), std::move(new_promise));
diff --git a/td/telegram/net/ConnectionCreator.cpp b/td/telegram/net/ConnectionCreator.cpp
index 3c49bc5a6..a55fff314 100644
--- a/td/telegram/net/ConnectionCreator.cpp
+++ b/td/telegram/net/ConnectionCreator.cpp
@@ -753,11 +753,7 @@ void ConnectionCreator::request_raw_connection(DcId dc_id, bool allow_media_only
void ConnectionCreator::request_raw_connection_by_ip(IPAddress ip_address, mtproto::TransportType transport_type,
Promise<unique_ptr<mtproto::RawConnection>> promise) {
- auto r_socket_fd = SocketFd::open(ip_address);
- if (r_socket_fd.is_error()) {
- return promise.set_error(r_socket_fd.move_as_error());
- }
- auto socket_fd = r_socket_fd.move_as_ok();
+ TRY_RESULT_PROMISE(promise, socket_fd, SocketFd::open(ip_address));
auto connection_promise = PromiseCreator::lambda([actor_id = actor_id(this), promise = std::move(promise),
transport_type, network_generation = network_generation_,
diff --git a/tdnet/td/net/GetHostByNameActor.cpp b/tdnet/td/net/GetHostByNameActor.cpp
index 2cd1d93c3..68ba5d1fa 100644
--- a/tdnet/td/net/GetHostByNameActor.cpp
+++ b/tdnet/td/net/GetHostByNameActor.cpp
@@ -134,11 +134,7 @@ GetHostByNameActor::GetHostByNameActor(Options options) : options_(std::move(opt
}
void GetHostByNameActor::run(string host, int port, bool prefer_ipv6, Promise<IPAddress> promise) {
- auto r_ascii_host = idn_to_ascii(host);
- if (r_ascii_host.is_error()) {
- return promise.set_error(r_ascii_host.move_as_error());
- }
- auto ascii_host = r_ascii_host.move_as_ok();
+ TRY_RESULT_PROMISE(promise, ascii_host, idn_to_ascii(host));
if (ascii_host.empty()) {
return promise.set_error(Status::Error("Host is empty"));
}