Make struct Invoice private.
This commit is contained in:
parent
aa5f4b1982
commit
302e2fd4b9
@ -20,24 +20,24 @@
|
|||||||
|
|
||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
static bool operator==(const Invoice &lhs, const Invoice &rhs) {
|
|
||||||
return lhs.is_test_ == rhs.is_test_ && lhs.need_name_ == rhs.need_name_ &&
|
|
||||||
lhs.need_phone_number_ == rhs.need_phone_number_ && lhs.need_email_address_ == rhs.need_email_address_ &&
|
|
||||||
lhs.need_shipping_address_ == rhs.need_shipping_address_ &&
|
|
||||||
lhs.send_phone_number_to_provider_ == rhs.send_phone_number_to_provider_ &&
|
|
||||||
lhs.send_email_address_to_provider_ == rhs.send_email_address_to_provider_ &&
|
|
||||||
lhs.is_flexible_ == rhs.is_flexible_ && lhs.currency_ == rhs.currency_ &&
|
|
||||||
lhs.price_parts_ == rhs.price_parts_ && lhs.max_tip_amount_ == rhs.max_tip_amount_ &&
|
|
||||||
lhs.suggested_tip_amounts_ == rhs.suggested_tip_amounts_ &&
|
|
||||||
lhs.recurring_payment_terms_of_service_url_ == rhs.recurring_payment_terms_of_service_url_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator==(const InputInvoice &lhs, const InputInvoice &rhs) {
|
bool operator==(const InputInvoice &lhs, const InputInvoice &rhs) {
|
||||||
|
auto are_invoice_equal = [](const InputInvoice::Invoice &lhs, const InputInvoice::Invoice &rhs) {
|
||||||
|
return lhs.is_test_ == rhs.is_test_ && lhs.need_name_ == rhs.need_name_ &&
|
||||||
|
lhs.need_phone_number_ == rhs.need_phone_number_ && lhs.need_email_address_ == rhs.need_email_address_ &&
|
||||||
|
lhs.need_shipping_address_ == rhs.need_shipping_address_ &&
|
||||||
|
lhs.send_phone_number_to_provider_ == rhs.send_phone_number_to_provider_ &&
|
||||||
|
lhs.send_email_address_to_provider_ == rhs.send_email_address_to_provider_ &&
|
||||||
|
lhs.is_flexible_ == rhs.is_flexible_ && lhs.currency_ == rhs.currency_ &&
|
||||||
|
lhs.price_parts_ == rhs.price_parts_ && lhs.max_tip_amount_ == rhs.max_tip_amount_ &&
|
||||||
|
lhs.suggested_tip_amounts_ == rhs.suggested_tip_amounts_ &&
|
||||||
|
lhs.recurring_payment_terms_of_service_url_ == rhs.recurring_payment_terms_of_service_url_;
|
||||||
|
};
|
||||||
|
|
||||||
return lhs.title_ == rhs.title_ && lhs.description_ == rhs.description_ && lhs.photo_ == rhs.photo_ &&
|
return lhs.title_ == rhs.title_ && lhs.description_ == rhs.description_ && lhs.photo_ == rhs.photo_ &&
|
||||||
lhs.start_parameter_ == rhs.start_parameter_ && lhs.invoice_ == rhs.invoice_ && lhs.payload_ == rhs.payload_ &&
|
lhs.start_parameter_ == rhs.start_parameter_ && are_invoice_equal(lhs.invoice_, rhs.invoice_) &&
|
||||||
lhs.provider_token_ == rhs.provider_token_ && lhs.provider_data_ == rhs.provider_data_ &&
|
lhs.payload_ == rhs.payload_ && lhs.provider_token_ == rhs.provider_token_ &&
|
||||||
lhs.extended_media_ == rhs.extended_media_ && lhs.total_amount_ == rhs.total_amount_ &&
|
lhs.provider_data_ == rhs.provider_data_ && lhs.extended_media_ == rhs.extended_media_ &&
|
||||||
lhs.receipt_message_id_ == rhs.receipt_message_id_;
|
lhs.total_amount_ == rhs.total_amount_ && lhs.receipt_message_id_ == rhs.receipt_message_id_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator!=(const InputInvoice &lhs, const InputInvoice &rhs) {
|
bool operator!=(const InputInvoice &lhs, const InputInvoice &rhs) {
|
||||||
@ -233,47 +233,46 @@ tl_object_ptr<td_api::messageInvoice> InputInvoice::get_message_invoice_object(T
|
|||||||
extended_media_.get_message_extended_media_object(td, skip_bot_commands, max_media_timestamp));
|
extended_media_.get_message_extended_media_object(td, skip_bot_commands, max_media_timestamp));
|
||||||
}
|
}
|
||||||
|
|
||||||
static tl_object_ptr<telegram_api::invoice> get_input_invoice(const Invoice &invoice) {
|
tl_object_ptr<telegram_api::invoice> InputInvoice::Invoice::get_input_invoice() const {
|
||||||
int32 flags = 0;
|
int32 flags = 0;
|
||||||
if (invoice.is_test_) {
|
if (is_test_) {
|
||||||
flags |= telegram_api::invoice::TEST_MASK;
|
flags |= telegram_api::invoice::TEST_MASK;
|
||||||
}
|
}
|
||||||
if (invoice.need_name_) {
|
if (need_name_) {
|
||||||
flags |= telegram_api::invoice::NAME_REQUESTED_MASK;
|
flags |= telegram_api::invoice::NAME_REQUESTED_MASK;
|
||||||
}
|
}
|
||||||
if (invoice.need_phone_number_) {
|
if (need_phone_number_) {
|
||||||
flags |= telegram_api::invoice::PHONE_REQUESTED_MASK;
|
flags |= telegram_api::invoice::PHONE_REQUESTED_MASK;
|
||||||
}
|
}
|
||||||
if (invoice.need_email_address_) {
|
if (need_email_address_) {
|
||||||
flags |= telegram_api::invoice::EMAIL_REQUESTED_MASK;
|
flags |= telegram_api::invoice::EMAIL_REQUESTED_MASK;
|
||||||
}
|
}
|
||||||
if (invoice.need_shipping_address_) {
|
if (need_shipping_address_) {
|
||||||
flags |= telegram_api::invoice::SHIPPING_ADDRESS_REQUESTED_MASK;
|
flags |= telegram_api::invoice::SHIPPING_ADDRESS_REQUESTED_MASK;
|
||||||
}
|
}
|
||||||
if (invoice.send_phone_number_to_provider_) {
|
if (send_phone_number_to_provider_) {
|
||||||
flags |= telegram_api::invoice::PHONE_TO_PROVIDER_MASK;
|
flags |= telegram_api::invoice::PHONE_TO_PROVIDER_MASK;
|
||||||
}
|
}
|
||||||
if (invoice.send_email_address_to_provider_) {
|
if (send_email_address_to_provider_) {
|
||||||
flags |= telegram_api::invoice::EMAIL_TO_PROVIDER_MASK;
|
flags |= telegram_api::invoice::EMAIL_TO_PROVIDER_MASK;
|
||||||
}
|
}
|
||||||
if (invoice.is_flexible_) {
|
if (is_flexible_) {
|
||||||
flags |= telegram_api::invoice::FLEXIBLE_MASK;
|
flags |= telegram_api::invoice::FLEXIBLE_MASK;
|
||||||
}
|
}
|
||||||
if (invoice.max_tip_amount_ != 0) {
|
if (max_tip_amount_ != 0) {
|
||||||
flags |= telegram_api::invoice::MAX_TIP_AMOUNT_MASK;
|
flags |= telegram_api::invoice::MAX_TIP_AMOUNT_MASK;
|
||||||
}
|
}
|
||||||
if (!invoice.recurring_payment_terms_of_service_url_.empty()) {
|
if (!recurring_payment_terms_of_service_url_.empty()) {
|
||||||
flags |= telegram_api::invoice::RECURRING_TERMS_URL_MASK;
|
flags |= telegram_api::invoice::RECURRING_TERMS_URL_MASK;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto prices = transform(invoice.price_parts_, [](const LabeledPricePart &price) {
|
auto prices = transform(price_parts_, [](const LabeledPricePart &price) {
|
||||||
return telegram_api::make_object<telegram_api::labeledPrice>(price.label, price.amount);
|
return telegram_api::make_object<telegram_api::labeledPrice>(price.label, price.amount);
|
||||||
});
|
});
|
||||||
return make_tl_object<telegram_api::invoice>(
|
return make_tl_object<telegram_api::invoice>(
|
||||||
flags, false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/,
|
flags, false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/,
|
||||||
false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/, invoice.currency_, std::move(prices),
|
false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/, currency_, std::move(prices),
|
||||||
invoice.max_tip_amount_, vector<int64>(invoice.suggested_tip_amounts_),
|
max_tip_amount_, vector<int64>(suggested_tip_amounts_), recurring_payment_terms_of_service_url_);
|
||||||
invoice.recurring_payment_terms_of_service_url_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static tl_object_ptr<telegram_api::inputWebDocument> get_input_web_document(const FileManager *file_manager,
|
static tl_object_ptr<telegram_api::inputWebDocument> get_input_web_document(const FileManager *file_manager,
|
||||||
@ -322,7 +321,7 @@ tl_object_ptr<telegram_api::inputMediaInvoice> InputInvoice::get_input_media_inv
|
|||||||
}
|
}
|
||||||
|
|
||||||
return make_tl_object<telegram_api::inputMediaInvoice>(
|
return make_tl_object<telegram_api::inputMediaInvoice>(
|
||||||
flags, title_, description_, std::move(input_web_document), get_input_invoice(invoice_), BufferSlice(payload_),
|
flags, title_, description_, std::move(input_web_document), invoice_.get_input_invoice(), BufferSlice(payload_),
|
||||||
provider_token_,
|
provider_token_,
|
||||||
telegram_api::make_object<telegram_api::dataJSON>(provider_data_.empty() ? "null" : provider_data_),
|
telegram_api::make_object<telegram_api::dataJSON>(provider_data_.empty() ? "null" : provider_data_),
|
||||||
start_parameter_, std::move(extended_media));
|
start_parameter_, std::move(extended_media));
|
||||||
@ -339,7 +338,7 @@ tl_object_ptr<telegram_api::inputBotInlineMessageMediaInvoice> InputInvoice::get
|
|||||||
flags |= telegram_api::inputBotInlineMessageMediaInvoice::PHOTO_MASK;
|
flags |= telegram_api::inputBotInlineMessageMediaInvoice::PHOTO_MASK;
|
||||||
}
|
}
|
||||||
return make_tl_object<telegram_api::inputBotInlineMessageMediaInvoice>(
|
return make_tl_object<telegram_api::inputBotInlineMessageMediaInvoice>(
|
||||||
flags, title_, description_, std::move(input_web_document), get_input_invoice(invoice_), BufferSlice(payload_),
|
flags, title_, description_, std::move(input_web_document), invoice_.get_input_invoice(), BufferSlice(payload_),
|
||||||
provider_token_,
|
provider_token_,
|
||||||
telegram_api::make_object<telegram_api::dataJSON>(provider_data_.empty() ? "null" : provider_data_),
|
telegram_api::make_object<telegram_api::dataJSON>(provider_data_.empty() ? "null" : provider_data_),
|
||||||
std::move(reply_markup));
|
std::move(reply_markup));
|
||||||
|
@ -22,34 +22,36 @@ namespace td {
|
|||||||
|
|
||||||
class Td;
|
class Td;
|
||||||
|
|
||||||
struct Invoice {
|
|
||||||
string currency_;
|
|
||||||
vector<LabeledPricePart> price_parts_;
|
|
||||||
int64 max_tip_amount_ = 0;
|
|
||||||
vector<int64> suggested_tip_amounts_;
|
|
||||||
string recurring_payment_terms_of_service_url_;
|
|
||||||
bool is_test_ = false;
|
|
||||||
bool need_name_ = false;
|
|
||||||
bool need_phone_number_ = false;
|
|
||||||
bool need_email_address_ = false;
|
|
||||||
bool need_shipping_address_ = false;
|
|
||||||
bool send_phone_number_to_provider_ = false;
|
|
||||||
bool send_email_address_to_provider_ = false;
|
|
||||||
bool is_flexible_ = false;
|
|
||||||
|
|
||||||
Invoice() = default;
|
|
||||||
Invoice(string &¤cy, bool is_test, bool need_shipping_address)
|
|
||||||
: currency_(std::move(currency)), is_test_(is_test), need_shipping_address_(need_shipping_address) {
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class StorerT>
|
|
||||||
void store(StorerT &storer) const;
|
|
||||||
|
|
||||||
template <class ParserT>
|
|
||||||
void parse(ParserT &parser);
|
|
||||||
};
|
|
||||||
|
|
||||||
class InputInvoice {
|
class InputInvoice {
|
||||||
|
struct Invoice {
|
||||||
|
string currency_;
|
||||||
|
vector<LabeledPricePart> price_parts_;
|
||||||
|
int64 max_tip_amount_ = 0;
|
||||||
|
vector<int64> suggested_tip_amounts_;
|
||||||
|
string recurring_payment_terms_of_service_url_;
|
||||||
|
bool is_test_ = false;
|
||||||
|
bool need_name_ = false;
|
||||||
|
bool need_phone_number_ = false;
|
||||||
|
bool need_email_address_ = false;
|
||||||
|
bool need_shipping_address_ = false;
|
||||||
|
bool send_phone_number_to_provider_ = false;
|
||||||
|
bool send_email_address_to_provider_ = false;
|
||||||
|
bool is_flexible_ = false;
|
||||||
|
|
||||||
|
Invoice() = default;
|
||||||
|
Invoice(string &¤cy, bool is_test, bool need_shipping_address)
|
||||||
|
: currency_(std::move(currency)), is_test_(is_test), need_shipping_address_(need_shipping_address) {
|
||||||
|
}
|
||||||
|
|
||||||
|
tl_object_ptr<telegram_api::invoice> get_input_invoice() const;
|
||||||
|
|
||||||
|
template <class StorerT>
|
||||||
|
void store(StorerT &storer) const;
|
||||||
|
|
||||||
|
template <class ParserT>
|
||||||
|
void parse(ParserT &parser);
|
||||||
|
};
|
||||||
|
|
||||||
string title_;
|
string title_;
|
||||||
string description_;
|
string description_;
|
||||||
Photo photo_;
|
Photo photo_;
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
namespace td {
|
namespace td {
|
||||||
|
|
||||||
template <class StorerT>
|
template <class StorerT>
|
||||||
void Invoice::store(StorerT &storer) const {
|
void InputInvoice::Invoice::store(StorerT &storer) const {
|
||||||
using td::store;
|
using td::store;
|
||||||
bool has_tip = max_tip_amount_ != 0;
|
bool has_tip = max_tip_amount_ != 0;
|
||||||
bool is_recurring = !recurring_payment_terms_of_service_url_.empty();
|
bool is_recurring = !recurring_payment_terms_of_service_url_.empty();
|
||||||
@ -45,7 +45,7 @@ void Invoice::store(StorerT &storer) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class ParserT>
|
template <class ParserT>
|
||||||
void Invoice::parse(ParserT &parser) {
|
void InputInvoice::Invoice::parse(ParserT &parser) {
|
||||||
using td::parse;
|
using td::parse;
|
||||||
bool has_tip;
|
bool has_tip;
|
||||||
bool is_recurring;
|
bool is_recurring;
|
||||||
|
Loading…
Reference in New Issue
Block a user