MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / requestHistory

Method requestHistory

Telegram/SourceFiles/api/api_statistics.cpp:747–788  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

745}
746
747void EarnStatistics::requestHistory(
748 const Data::EarnHistorySlice::OffsetToken &token,
749 Fn<void(Data::EarnHistorySlice)> done) {
750 if (_requestId) {
751 return;
752 }
753
754 constexpr auto kTlFirstSlice = tl::make_int(kFirstSlice);
755 constexpr auto kTlLimit = tl::make_int(kLimit);
756
757 _requestId = api().request(MTPpayments_GetStarsTransactions(
758 MTP_flags(MTPpayments_getStarsTransactions::Flag::f_ton),
759 MTP_string(), // Subscription ID.
760 (_isUser ? user()->input() : channel()->input()),
761 MTP_string(token),
762 token.isEmpty() ? kTlFirstSlice : kTlLimit
763 )).done([=](const MTPpayments_StarsStatus &result) {
764 _requestId = 0;
765
766 const auto nextToken = result.data().vnext_offset().value_or_empty();
767
768 const auto tlTransactions
769 = result.data().vhistory().value_or_empty();
770
771 const auto peer = _isUser ? (PeerData*)user() : (PeerData*)channel();
772 auto list = ranges::views::all(
773 tlTransactions
774 ) | ranges::views::transform([=](const auto &d) {
775 return CreditsHistoryEntryFromTL(d, peer);
776 }) | ranges::to_vector;
777 done(Data::EarnHistorySlice{
778 .list = std::move(list),
779 .total = int(tlTransactions.size()),
780 // .total = result.data().vcount().v,
781 .allLoaded = nextToken.isEmpty(),
782 .token = Data::EarnHistorySlice::OffsetToken(nextToken),
783 });
784 }).fail([=] {
785 done({});
786 _requestId = 0;
787 }).send();
788}
789
790Data::EarnStatistics EarnStatistics::data() const {
791 return _data;

Callers 2

HistoryViewerFunction · 0.45
fillMethod · 0.45

Calls 12

MTP_flagsFunction · 0.85
MTP_stringFunction · 0.85
OffsetTokenClass · 0.85
sendMethod · 0.45
failMethod · 0.45
doneMethod · 0.45
requestMethod · 0.45
inputMethod · 0.45
isEmptyMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected