| 295 | } |
| 296 | |
| 297 | void Premium::checkGiftCode( |
| 298 | const QString &slug, |
| 299 | Fn<void(GiftCode)> done) { |
| 300 | if (_giftCodeRequestId) { |
| 301 | if (_giftCodeSlug == slug) { |
| 302 | return; |
| 303 | } |
| 304 | _api.request(_giftCodeRequestId).cancel(); |
| 305 | } |
| 306 | _giftCodeSlug = slug; |
| 307 | _giftCodeRequestId = _api.request(MTPpayments_CheckGiftCode( |
| 308 | MTP_string(slug) |
| 309 | )).done([=](const MTPpayments_CheckedGiftCode &result) { |
| 310 | _giftCodeRequestId = 0; |
| 311 | |
| 312 | const auto &data = result.data(); |
| 313 | _session->data().processUsers(data.vusers()); |
| 314 | _session->data().processChats(data.vchats()); |
| 315 | done(updateGiftCode(slug, Parse(data))); |
| 316 | }).fail([=](const MTP::Error &error) { |
| 317 | _giftCodeRequestId = 0; |
| 318 | |
| 319 | done(updateGiftCode(slug, {})); |
| 320 | }).send(); |
| 321 | } |
| 322 | |
| 323 | GiftCode Premium::updateGiftCode( |
| 324 | const QString &slug, |
no test coverage detected