Add getStarTransactions.limit.

This commit is contained in:
levlam 2024-06-14 13:42:18 +03:00
parent 848e33bc39
commit b0bfe55580
5 changed files with 18 additions and 9 deletions

View File

@ -10979,9 +10979,10 @@ getPremiumGiveawayInfo chat_id:int53 message_id:int53 = PremiumGiveawayInfo;
getStarPaymentOptions = StarPaymentOptions;
//@description Returns the list of Telegram star transactions for the current user
//@offset Offset of the first transaction to return as received from the previous request; use empty string to get the first chunk of results
//@direction Direction of the transactions to receive; pass null to get all transactions
getStarTransactions offset:string direction:StarTransactionDirection = StarTransactions;
//@offset Offset of the first transaction to return as received from the previous request; use empty string to get the first chunk of results
//@limit The maximum number of transactions to return
getStarTransactions direction:StarTransactionDirection offset:string limit:int32 = StarTransactions;
//@description Checks whether an in-store purchase is possible. Must be called before any in-store purchase @purpose Transaction purpose
canPurchaseFromStore purpose:StorePaymentPurpose = Ok;

View File

@ -64,7 +64,7 @@ class GetStarsTransactionsQuery final : public Td::ResultHandler {
: promise_(std::move(promise)) {
}
void send(const string &offset, td_api::object_ptr<td_api::StarTransactionDirection> &&direction) {
void send(const string &offset, int32 limit, td_api::object_ptr<td_api::StarTransactionDirection> &&direction) {
int32 flags = 0;
if (direction != nullptr) {
switch (direction->get_id()) {
@ -80,7 +80,7 @@ class GetStarsTransactionsQuery final : public Td::ResultHandler {
}
send_query(G()->net_query_creator().create(telegram_api::payments_getStarsTransactions(
flags, false /*ignored*/, false /*ignored*/, false /*ignored*/,
telegram_api::make_object<telegram_api::inputPeerSelf>(), offset, 100)));
telegram_api::make_object<telegram_api::inputPeerSelf>(), offset, limit)));
}
void on_result(BufferSlice packet) final {
@ -231,10 +231,13 @@ void StarManager::get_star_payment_options(Promise<td_api::object_ptr<td_api::st
td_->create_handler<GetStarsTopupOptionsQuery>(std::move(promise))->send();
}
void StarManager::get_star_transactions(const string &offset,
void StarManager::get_star_transactions(const string &offset, int32 limit,
td_api::object_ptr<td_api::StarTransactionDirection> &&direction,
Promise<td_api::object_ptr<td_api::starTransactions>> &&promise) {
td_->create_handler<GetStarsTransactionsQuery>(std::move(promise))->send(offset, std::move(direction));
if (limit < 0) {
return promise.set_error(Status::Error(400, "Limit must be non-negative"));
}
td_->create_handler<GetStarsTransactionsQuery>(std::move(promise))->send(offset, limit, std::move(direction));
}
void StarManager::refund_star_payment(UserId user_id, const string &telegram_payment_charge_id,

View File

@ -26,7 +26,8 @@ class StarManager final : public Actor {
void get_star_payment_options(Promise<td_api::object_ptr<td_api::starPaymentOptions>> &&promise);
void get_star_transactions(const string &offset, td_api::object_ptr<td_api::StarTransactionDirection> &&direction,
void get_star_transactions(const string &offset, int32 limit,
td_api::object_ptr<td_api::StarTransactionDirection> &&direction,
Promise<td_api::object_ptr<td_api::starTransactions>> &&promise);
void refund_star_payment(UserId user_id, const string &telegram_payment_charge_id, Promise<Unit> &&promise);

View File

@ -9501,7 +9501,8 @@ void Td::on_request(uint64 id, td_api::getStarTransactions &request) {
CHECK_IS_USER();
CLEAN_INPUT_STRING(request.offset_);
CREATE_REQUEST_PROMISE();
star_manager_->get_star_transactions(request.offset_, std::move(request.direction_), std::move(promise));
star_manager_->get_star_transactions(request.offset_, request.limit_, std::move(request.direction_),
std::move(promise));
}
void Td::on_request(uint64 id, td_api::canPurchaseFromStore &request) {

View File

@ -3436,13 +3436,16 @@ class CliClient final : public Actor {
} else if (op == "gspo") {
send_request(td_api::make_object<td_api::getStarPaymentOptions>());
} else if (op == "gsta" || op == "gsti" || op == "gsto") {
string offset;
string limit;
get_args(args, offset, limit);
td_api::object_ptr<td_api::StarTransactionDirection> direction;
if (op == "gsti") {
direction = td_api::make_object<td_api::starTransactionDirectionIncoming>();
} else if (op == "gsto") {
direction = td_api::make_object<td_api::starTransactionDirectionOutgoing>();
}
send_request(td_api::make_object<td_api::getStarTransactions>(args, std::move(direction)));
send_request(td_api::make_object<td_api::getStarTransactions>(std::move(direction), offset, as_limit(limit)));
} else if (op == "cpfs" || op == "cpfsb") {
UserId user_id;
string currency;