aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2021-09-03 18:17:11 +0300
committerlevlam <levlam@telegram.org>2021-09-03 18:17:11 +0300
commit9ebeafbb5b7d4bdc3e7f61d9250969f03fdabd59 (patch)
tree0ce604d5bc795a8df90c5c21cff9bc4376d1016d
parent9a6e8cad9ee98570f7b3e2bd5dd3d870d8b0977a (diff)
Add get_json_value_bool helper function.
-rw-r--r--td/telegram/ConfigManager.cpp8
-rw-r--r--td/telegram/JsonValue.cpp9
-rw-r--r--td/telegram/JsonValue.h2
3 files changed, 13 insertions, 6 deletions
diff --git a/td/telegram/ConfigManager.cpp b/td/telegram/ConfigManager.cpp
index a4bb1748a..ffeadb10a 100644
--- a/td/telegram/ConfigManager.cpp
+++ b/td/telegram/ConfigManager.cpp
@@ -1606,12 +1606,8 @@ void ConfigManager::process_app_config(tl_object_ptr<telegram_api::JSONValue> &c
continue;
}
if (key == "autoarchive_setting_available") {
- if (value->get_id() == telegram_api::jsonBool::ID) {
- can_archive_and_mute_new_chats_from_unknown_users =
- std::move(static_cast<telegram_api::jsonBool *>(value)->value_);
- } else {
- LOG(ERROR) << "Receive unexpected autoarchive_setting_available " << to_string(*value);
- }
+ can_archive_and_mute_new_chats_from_unknown_users =
+ get_json_value_bool(std::move(key_value->value_), "autoarchive_setting_available");
continue;
}
if (key == "autologin_token") {
diff --git a/td/telegram/JsonValue.cpp b/td/telegram/JsonValue.cpp
index 197d388a8..254d6990b 100644
--- a/td/telegram/JsonValue.cpp
+++ b/td/telegram/JsonValue.cpp
@@ -199,6 +199,15 @@ string get_json_string(const td_api::JsonValue *json_value) {
return json_encode<string>(JsonableJsonValue(json_value));
}
+bool get_json_value_bool(telegram_api::object_ptr<telegram_api::JSONValue> &&json_value, Slice name) {
+ CHECK(json_value != nullptr);
+ if (json_value->get_id() == telegram_api::jsonBool::ID) {
+ return static_cast<const telegram_api::jsonBool *>(json_value.get())->value_;
+ }
+ LOG(ERROR) << "Expected Boolean as " << name << ", but found " << to_string(json_value);
+ return false;
+}
+
int32 get_json_value_int(telegram_api::object_ptr<telegram_api::JSONValue> &&json_value, Slice name) {
CHECK(json_value != nullptr);
if (json_value->get_id() == telegram_api::jsonNumber::ID) {
diff --git a/td/telegram/JsonValue.h b/td/telegram/JsonValue.h
index acb972e96..51b1a748d 100644
--- a/td/telegram/JsonValue.h
+++ b/td/telegram/JsonValue.h
@@ -26,6 +26,8 @@ tl_object_ptr<telegram_api::JSONValue> convert_json_value(td_api::object_ptr<td_
string get_json_string(const td_api::JsonValue *json_value);
+bool get_json_value_bool(telegram_api::object_ptr<telegram_api::JSONValue> &&json_value, Slice name);
+
int32 get_json_value_int(telegram_api::object_ptr<telegram_api::JSONValue> &&json_value, Slice name);
string get_json_value_string(telegram_api::object_ptr<telegram_api::JSONValue> &&json_value, Slice name);