aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2025-11-28 15:12:51 +0300
committerlevlam <levlam@telegram.org>2025-11-28 15:12:51 +0300
commitd58b043a5fb5eccd6756c7cab6ce94273ea8ecf4 (patch)
tree039ea74da16713e5c2476dbe0a55ddc0e41e7a14
parent0d388130e80cbfefd554a1b2e8dd554084eae8a3 (diff)
Add AuctionBidLevel::get_auction_bid_levels.
-rw-r--r--td/telegram/AuctionBidLevel.cpp20
-rw-r--r--td/telegram/AuctionBidLevel.h5
2 files changed, 23 insertions, 2 deletions
diff --git a/td/telegram/AuctionBidLevel.cpp b/td/telegram/AuctionBidLevel.cpp
index e1286b504..3d5065c97 100644
--- a/td/telegram/AuctionBidLevel.cpp
+++ b/td/telegram/AuctionBidLevel.cpp
@@ -10,12 +10,30 @@
namespace td {
-AuctionBidLevel::AuctionBidLevel(telegram_api::object_ptr<telegram_api::auctionBidLevel> &bid_level)
+AuctionBidLevel::AuctionBidLevel(const telegram_api::object_ptr<telegram_api::auctionBidLevel> &bid_level)
: position_(bid_level->pos_)
, star_count_(StarManager::get_star_count(bid_level->amount_))
, date_(bid_level->date_) {
}
+vector<AuctionBidLevel> AuctionBidLevel::get_auction_bid_levels(
+ const vector<telegram_api::object_ptr<telegram_api::auctionBidLevel>> &bid_levels) {
+ vector<AuctionBidLevel> result;
+ for (const auto &bid_level : bid_levels) {
+ AuctionBidLevel level(bid_level);
+ if (result.empty() || result.back() < level) {
+ result.push_back(std::move(level));
+ }
+ }
+ if (result.size() != bid_levels.size()) {
+ LOG(ERROR) << "Receive unsorted bid levels";
+ for (const auto &bid_level : bid_levels) {
+ LOG(ERROR) << to_string(bid_level);
+ }
+ }
+ return result;
+}
+
td_api::object_ptr<td_api::auctionBid> AuctionBidLevel::get_auction_bid_object() const {
return td_api::make_object<td_api::auctionBid>(star_count_, date_, position_);
}
diff --git a/td/telegram/AuctionBidLevel.h b/td/telegram/AuctionBidLevel.h
index bcb267941..e16e18ff5 100644
--- a/td/telegram/AuctionBidLevel.h
+++ b/td/telegram/AuctionBidLevel.h
@@ -25,7 +25,10 @@ class AuctionBidLevel {
friend StringBuilder &operator<<(StringBuilder &string_builder, const AuctionBidLevel &bid_level);
public:
- AuctionBidLevel(telegram_api::object_ptr<telegram_api::auctionBidLevel> &bid_level);
+ explicit AuctionBidLevel(const telegram_api::object_ptr<telegram_api::auctionBidLevel> &bid_level);
+
+ static vector<AuctionBidLevel> get_auction_bid_levels(
+ const vector<telegram_api::object_ptr<telegram_api::auctionBidLevel>> &bid_levels);
td_api::object_ptr<td_api::auctionBid> get_auction_bid_object() const;
};