Added initial api support for credits topup options.
This commit is contained in:
parent
b5eb195f43
commit
f1636de572
|
@ -120,6 +120,8 @@ PRIVATE
|
||||||
api/api_common.h
|
api/api_common.h
|
||||||
api/api_confirm_phone.cpp
|
api/api_confirm_phone.cpp
|
||||||
api/api_confirm_phone.h
|
api/api_confirm_phone.h
|
||||||
|
api/api_credits.cpp
|
||||||
|
api/api_credits.h
|
||||||
api/api_earn.cpp
|
api/api_earn.cpp
|
||||||
api/api_earn.h
|
api/api_earn.h
|
||||||
api/api_editing.cpp
|
api/api_editing.cpp
|
||||||
|
@ -1360,6 +1362,8 @@ PRIVATE
|
||||||
settings/settings_codes.h
|
settings/settings_codes.h
|
||||||
settings/settings_common_session.cpp
|
settings/settings_common_session.cpp
|
||||||
settings/settings_common_session.h
|
settings/settings_common_session.h
|
||||||
|
settings/settings_credits.cpp
|
||||||
|
settings/settings_credits.h
|
||||||
settings/settings_experimental.cpp
|
settings/settings_experimental.cpp
|
||||||
settings/settings_experimental.h
|
settings/settings_experimental.h
|
||||||
settings/settings_folders.cpp
|
settings/settings_folders.cpp
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#include "api/api_credits.h"
|
||||||
|
|
||||||
|
#include "apiwrap.h"
|
||||||
|
#include "data/data_peer.h"
|
||||||
|
#include "main/main_session.h"
|
||||||
|
|
||||||
|
namespace Api {
|
||||||
|
|
||||||
|
CreditsTopupOptions::CreditsTopupOptions(not_null<PeerData*> peer)
|
||||||
|
: _peer(peer)
|
||||||
|
, _api(&peer->session().api().instance()) {
|
||||||
|
}
|
||||||
|
|
||||||
|
rpl::producer<rpl::no_value, QString> CreditsTopupOptions::request() {
|
||||||
|
return [=](auto consumer) {
|
||||||
|
auto lifetime = rpl::lifetime();
|
||||||
|
|
||||||
|
using TLOption = MTPStarsTopupOption;
|
||||||
|
_api.request(MTPpayments_GetStarsTopupOptions(
|
||||||
|
)).done([=](const MTPVector<TLOption> &result) {
|
||||||
|
_options = ranges::views::all(
|
||||||
|
result.v
|
||||||
|
) | ranges::views::transform([](const TLOption &option) {
|
||||||
|
return Data::CreditTopupOption{
|
||||||
|
.credits = option.data().vstars().v,
|
||||||
|
.product = qs(
|
||||||
|
option.data().vstore_product().value_or_empty()),
|
||||||
|
.currency = qs(option.data().vcurrency()),
|
||||||
|
.amount = option.data().vamount().v,
|
||||||
|
};
|
||||||
|
}) | ranges::to_vector;
|
||||||
|
consumer.put_done();
|
||||||
|
}).fail([=](const MTP::Error &error) {
|
||||||
|
consumer.put_error_copy(error.type());
|
||||||
|
}).send();
|
||||||
|
|
||||||
|
return lifetime;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
Data::CreditTopupOptions CreditsTopupOptions::options() const {
|
||||||
|
return _options;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Api
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "data/data_credits.h"
|
||||||
|
#include "mtproto/sender.h"
|
||||||
|
|
||||||
|
namespace Main {
|
||||||
|
class Session;
|
||||||
|
} // namespace Main
|
||||||
|
|
||||||
|
namespace Api {
|
||||||
|
|
||||||
|
class CreditsTopupOptions final {
|
||||||
|
public:
|
||||||
|
CreditsTopupOptions(not_null<PeerData*> peer);
|
||||||
|
|
||||||
|
[[nodiscard]] rpl::producer<rpl::no_value, QString> request();
|
||||||
|
[[nodiscard]] Data::CreditTopupOptions options() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
const not_null<PeerData*> _peer;
|
||||||
|
|
||||||
|
Data::CreditTopupOptions _options;
|
||||||
|
|
||||||
|
MTP::Sender _api;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace Api
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace Data {
|
||||||
|
|
||||||
|
struct CreditTopupOption final {
|
||||||
|
uint64 credits = 0;
|
||||||
|
QString product;
|
||||||
|
QString currency;
|
||||||
|
uint64 amount = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
using CreditTopupOptions = std::vector<CreditTopupOption>;
|
||||||
|
|
||||||
|
} // namespace Data
|
|
@ -80,6 +80,7 @@ PRIVATE
|
||||||
data/data_birthday.cpp
|
data/data_birthday.cpp
|
||||||
data/data_birthday.h
|
data/data_birthday.h
|
||||||
data/data_channel_earn.h
|
data/data_channel_earn.h
|
||||||
|
data/data_credits.h
|
||||||
data/data_statistics_chart.cpp
|
data/data_statistics_chart.cpp
|
||||||
data/data_statistics_chart.h
|
data/data_statistics_chart.h
|
||||||
data/data_subscription_option.h
|
data/data_subscription_option.h
|
||||||
|
|
Loading…
Reference in New Issue