diff options
| author | levlam <levlam@telegram.org> | 2025-11-28 15:12:51 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2025-11-28 15:12:51 +0300 |
| commit | d58b043a5fb5eccd6756c7cab6ce94273ea8ecf4 (patch) | |
| tree | 039ea74da16713e5c2476dbe0a55ddc0e41e7a14 | |
| parent | 0d388130e80cbfefd554a1b2e8dd554084eae8a3 (diff) | |
Add AuctionBidLevel::get_auction_bid_levels.
| -rw-r--r-- | td/telegram/AuctionBidLevel.cpp | 20 | ||||
| -rw-r--r-- | td/telegram/AuctionBidLevel.h | 5 |
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; }; |
