diff options
| author | levlam <levlam@telegram.org> | 2026-07-05 00:08:07 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-07-05 00:08:07 +0300 |
| commit | 58a11c65eef93451da3bd59f8121798b1b3c3458 (patch) | |
| tree | 538e3f2c96c531f56fea4e8dd8dc1e54576f1737 | |
| parent | 58a965b2af611578c100094993a37725178749d4 (diff) | |
Use get_array in get_suggested_tip_amounts.
| -rw-r--r-- | telegram-bot-api/Client.cpp | 43 | ||||
| -rw-r--r-- | telegram-bot-api/Client.h | 4 |
2 files changed, 20 insertions, 27 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 5800e09..24b81af 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -10479,28 +10479,24 @@ td::Result<td::vector<td_api::object_ptr<td_api::labeledPricePart>>> Client::get return get_array(std::move(value), "LabeledPrice", get_labeled_price_part); } -td::Result<td::vector<td::int64>> Client::get_suggested_tip_amounts(td::JsonValue &&value) { - if (value.type() != td::JsonValue::Type::Array) { - return td::Status::Error(400, "Expected an Array of suggested tip amounts"); +td::Result<td::int64> Client::get_suggested_tip_amount(td::JsonValue &&value) { + td::Slice number; + if (value.type() == td::JsonValue::Type::Number) { + number = value.get_number(); + } else if (value.type() == td::JsonValue::Type::String) { + number = value.get_string(); + } else { + return td::Status::Error(400, "Suggested tip amount must be of type Number or String"); } - - td::vector<int64> suggested_tip_amounts; - for (auto &amount : value.get_array()) { - td::Slice number; - if (amount.type() == td::JsonValue::Type::Number) { - number = amount.get_number(); - } else if (amount.type() == td::JsonValue::Type::String) { - number = amount.get_string(); - } else { - return td::Status::Error(400, "Suggested tip amount must be of type Number or String"); - } - auto parsed_amount = td::to_integer_safe<int64>(number); - if (parsed_amount.is_error()) { - return td::Status::Error(400, "Can't parse suggested tip amount as Number"); - } - suggested_tip_amounts.push_back(parsed_amount.ok()); + auto parsed_amount = td::to_integer_safe<int64>(number); + if (parsed_amount.is_error()) { + return td::Status::Error(400, "Can't parse suggested tip amount as Number"); } - return std::move(suggested_tip_amounts); + return parsed_amount.ok(); +} + +td::Result<td::vector<td::int64>> Client::get_suggested_tip_amounts(td::JsonValue &&value) { + return get_array(std::move(value), "suggested tip amount", get_suggested_tip_amount); } td::Result<td_api::object_ptr<td_api::shippingOption>> Client::get_shipping_option(td::JsonValue &&option) { @@ -10737,12 +10733,7 @@ td::Result<td_api::object_ptr<td_api::InputMessageContent>> Client::get_input_me TRY_RESULT(prices, get_labeled_price_parts(std::move(prices_object))); TRY_RESULT(provider_data, object.get_optional_string_field("provider_data")); TRY_RESULT(max_tip_amount, object.get_optional_long_field("max_tip_amount")); - td::vector<int64> suggested_tip_amounts; - TRY_RESULT(suggested_tip_amounts_array, - object.extract_optional_field("suggested_tip_amounts", td::JsonValue::Type::Array)); - if (suggested_tip_amounts_array.type() == td::JsonValue::Type::Array) { - TRY_RESULT_ASSIGN(suggested_tip_amounts, get_suggested_tip_amounts(std::move(suggested_tip_amounts_array))); - } + TRY_RESULT(suggested_tip_amounts, get_suggested_tip_amounts(object.extract_field("suggested_tip_amounts"))); TRY_RESULT(photo_url, object.get_optional_string_field("photo_url")); TRY_RESULT(photo_size, object.get_optional_int_field("photo_size")); TRY_RESULT(photo_width, object.get_optional_int_field("photo_width")); diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index dc3001d..95af8ee 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -538,6 +538,8 @@ class Client final : public WebhookActor::Callback { static td::Result<td::vector<object_ptr<td_api::labeledPricePart>>> get_labeled_price_parts(td::JsonValue &&value); + static td::Result<int64> get_suggested_tip_amount(td::JsonValue &&value); + static td::Result<td::vector<int64>> get_suggested_tip_amounts(td::JsonValue &&value); static td::Result<object_ptr<td_api::shippingOption>> get_shipping_option(td::JsonValue &&option); @@ -1019,7 +1021,7 @@ class Client final : public WebhookActor::Callback { void on_webhook_closed(td::Status status); - void delete_last_send_message_time(td::int64 file_size, double max_delay); + void delete_last_send_message_time(int64 file_size, double max_delay); void do_send_message(object_ptr<td_api::InputMessageContent> input_message_content, PromisedQueryPtr query, bool force = false); |
