| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /*
- 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 "stripe/stripe_token.h"
- #include "stripe/stripe_decode.h"
- namespace Stripe {
- QString Token::tokenId() const {
- return _tokenId;
- }
- bool Token::livemode() const {
- return _livemode;
- }
- Card Token::card() const {
- return _card;
- }
- Token Token::Empty() {
- return Token(QString(), false, QDateTime());
- }
- Token Token::DecodedObjectFromAPIResponse(QJsonObject object) {
- if (!ContainsFields(object, { u"id", u"livemode", u"created" })) {
- return Token::Empty();
- }
- const auto tokenId = object.value("id").toString();
- const auto livemode = object.value("livemode").toBool();
- const auto created = QDateTime::fromSecsSinceEpoch(
- object.value("created").toDouble());
- auto result = Token(tokenId, livemode, created);
- const auto card = object.value("card");
- if (card.isObject()) {
- result._card = Card::DecodedObjectFromAPIResponse(card.toObject());
- }
- // TODO incomplete, not used.
- //const auto bankAccount = object.value("bank_account");
- //if (bankAccount.isObject()) {
- // result._bankAccount = bankAccount::DecodedObjectFromAPIResponse(
- // bankAccount.toObject());
- //}
- //result._allResponseFields = object;
- return result;
- }
- bool Token::empty() const {
- return _tokenId.isEmpty();
- }
- Token::Token(QString tokenId, bool livemode, QDateTime created)
- : _tokenId(std::move(tokenId))
- , _livemode(livemode)
- , _created(std::move(created)) {
- }
- } // namespace Stripe
|