diff --git a/Telegram/SourceFiles/api/api_credits.cpp b/Telegram/SourceFiles/api/api_credits.cpp index 860753e63..50544f77e 100644 --- a/Telegram/SourceFiles/api/api_credits.cpp +++ b/Telegram/SourceFiles/api/api_credits.cpp @@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "api/api_updates.h" #include "apiwrap.h" #include "base/unixtime.h" +#include "data/data_channel.h" #include "data/data_peer.h" #include "data/data_photo.h" #include "data/data_session.h" @@ -227,21 +228,22 @@ rpl::producer> PremiumPeerBot( }; } -BotEarnStatistics::BotEarnStatistics(not_null user) -: StatisticsRequestSender(user) { +CreditsEarnStatistics::CreditsEarnStatistics(not_null peer) +: StatisticsRequestSender(peer) +, _isUser(peer->isUser()) { } -rpl::producer BotEarnStatistics::request() { +rpl::producer CreditsEarnStatistics::request() { return [=](auto consumer) { auto lifetime = rpl::lifetime(); makeRequest(MTPpayments_GetStarsRevenueStats( MTP_flags(0), - user()->input + (_isUser ? user()->input : channel()->input) )).done([=](const MTPpayments_StarsRevenueStats &result) { const auto &data = result.data(); const auto &status = data.vstatus().data(); - _data = Data::BotEarnStatistics{ + _data = Data::CreditsEarnStatistics{ .revenueGraph = StatisticalGraphFromTL(data.vrevenue_graph()), .currentBalance = status.vcurrent_balance().v, .availableBalance = status.vavailable_balance().v, @@ -262,7 +264,7 @@ rpl::producer BotEarnStatistics::request() { }; } -Data::BotEarnStatistics BotEarnStatistics::data() const { +Data::CreditsEarnStatistics CreditsEarnStatistics::data() const { return _data; } diff --git a/Telegram/SourceFiles/api/api_credits.h b/Telegram/SourceFiles/api/api_credits.h index ae9ff5115..ae2e0984d 100644 --- a/Telegram/SourceFiles/api/api_credits.h +++ b/Telegram/SourceFiles/api/api_credits.h @@ -72,15 +72,16 @@ private: }; -class BotEarnStatistics final : public StatisticsRequestSender { +class CreditsEarnStatistics final : public StatisticsRequestSender { public: - explicit BotEarnStatistics(not_null); + explicit CreditsEarnStatistics(not_null); [[nodiscard]] rpl::producer request(); - [[nodiscard]] Data::BotEarnStatistics data() const; + [[nodiscard]] Data::CreditsEarnStatistics data() const; private: - Data::BotEarnStatistics _data; + Data::CreditsEarnStatistics _data; + bool _isUser = false; mtpRequestId _requestId = 0; diff --git a/Telegram/SourceFiles/data/data_bot_earn.h b/Telegram/SourceFiles/data/data_bot_earn.h index e208ccf00..080feb174 100644 --- a/Telegram/SourceFiles/data/data_bot_earn.h +++ b/Telegram/SourceFiles/data/data_bot_earn.h @@ -13,16 +13,16 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace Data { -using BotEarnInt = uint64; +using CreditsEarnInt = uint64; -struct BotEarnStatistics final { +struct CreditsEarnStatistics final { explicit operator bool() const { return !!usdRate; } Data::StatisticalGraph revenueGraph; - BotEarnInt currentBalance = 0; - BotEarnInt availableBalance = 0; - BotEarnInt overallRevenue = 0; + CreditsEarnInt currentBalance = 0; + CreditsEarnInt availableBalance = 0; + CreditsEarnInt overallRevenue = 0; float64 usdRate = 0.; bool isWithdrawalEnabled = false; QDateTime nextWithdrawalAt; diff --git a/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp b/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp index 57fb6a910..67ee8075d 100644 --- a/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp +++ b/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.cpp @@ -99,8 +99,8 @@ InnerWidget::InnerWidget( void InnerWidget::load() { const auto apiLifetime = lifetime().make_state(); - const auto request = [=](Fn done) { - const auto api = apiLifetime->make_state( + const auto request = [=](Fn done) { + const auto api = apiLifetime->make_state( _peer->asUser()); api->request( ) | rpl::start_with_error_done([show = _show](const QString &error) { @@ -118,7 +118,7 @@ void InnerWidget::load() { _showFinished.events( ) | rpl::take(1) | rpl::start_with_next([=] { - request([=](Data::BotEarnStatistics state) { + request([=](Data::CreditsEarnStatistics state) { _state = state; _loaded.fire(true); fill(); @@ -129,7 +129,7 @@ void InnerWidget::load() { Api::PerformForUpdate(updates, [&](const TL &d) { const auto peerId = peerFromMTP(d.vpeer()); if (peerId == _peer->id) { - request([=](Data::BotEarnStatistics state) { + request([=](Data::CreditsEarnStatistics state) { _state = state; _stateUpdated.fire({}); }); diff --git a/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.h b/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.h index 65558b3e2..60207334d 100644 --- a/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.h +++ b/Telegram/SourceFiles/info/bot/earn/info_earn_inner_widget.h @@ -57,7 +57,7 @@ private: not_null _peer; std::shared_ptr _show; - Data::BotEarnStatistics _state; + Data::CreditsEarnStatistics _state; rpl::event_stream _scrollToRequests; rpl::event_stream _showRequests; diff --git a/Telegram/SourceFiles/info/bot/earn/info_earn_widget.h b/Telegram/SourceFiles/info/bot/earn/info_earn_widget.h index b201a32af..12397750e 100644 --- a/Telegram/SourceFiles/info/bot/earn/info_earn_widget.h +++ b/Telegram/SourceFiles/info/bot/earn/info_earn_widget.h @@ -27,7 +27,7 @@ public: Section section() const override; - using SavedState = Data::BotEarnStatistics; + using SavedState = Data::CreditsEarnStatistics; void setState(SavedState states); [[nodiscard]] SavedState state();