| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*
- 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 "smartglocal/smartglocal_card.h"
- #include <QtCore/QRegularExpression>
- namespace SmartGlocal {
- Card::Card(
- QString type,
- QString network,
- QString maskedNumber)
- : _type(type)
- , _network(network)
- , _maskedNumber(maskedNumber) {
- }
- Card Card::Empty() {
- return Card(QString(), QString(), QString());
- }
- Card Card::DecodedObjectFromAPIResponse(QJsonObject object) {
- const auto string = [&](QStringView key) {
- return object.value(key).toString();
- };
- const auto type = string(u"card_type");
- const auto network = string(u"card_network");
- const auto maskedNumber = string(u"masked_card_number");
- if (type.isEmpty() || maskedNumber.isEmpty()) {
- return Card::Empty();
- }
- return Card(type, network, maskedNumber);
- }
- QString Card::type() const {
- return _type;
- }
- QString Card::network() const {
- return _network;
- }
- QString Card::maskedNumber() const {
- return _maskedNumber;
- }
- bool Card::empty() const {
- return _type.isEmpty() || _maskedNumber.isEmpty();
- }
- QString Last4(const Card &card) {
- static const auto RegExp = QRegularExpression("[^\\d]\\d*(\\d{4})$");
- const auto masked = card.maskedNumber();
- const auto m = RegExp.match(masked);
- return m.hasMatch() ? m.captured(1) : QString();
- }
- } // namespace SmartGlocal
|