MCPcopy Create free account
hub / github.com/MultiMC/Launcher / onRefreshFinished

Method onRefreshFinished

libraries/katabasis/src/DeviceFlow.cpp:392–416  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

390}
391
392void DeviceFlow::onRefreshFinished() {
393 QNetworkReply *refreshReply = qobject_cast<QNetworkReply *>(sender());
394
395 auto networkError = refreshReply->error();
396 if (networkError == QNetworkReply::NoError) {
397 QByteArray reply = refreshReply->readAll();
398 QVariantMap tokens = parseJsonResponse(reply);
399 setToken(tokens.value(OAUTH2_ACCESS_TOKEN).toString());
400 setExpires(QDateTime::currentDateTimeUtc().addSecs(tokens.value(OAUTH2_EXPIRES_IN).toInt()));
401 QString refreshToken = tokens.value(OAUTH2_REFRESH_TOKEN).toString();
402 if(!refreshToken.isEmpty()) {
403 setRefreshToken(refreshToken);
404 }
405 else {
406 qDebug() << "No new refresh token. Keep the old one.";
407 }
408 timedReplies_.remove(refreshReply);
409 refreshReply->deleteLater();
410 updateActivity(Activity::Succeeded);
411 qDebug() << "New token expires in" << expires() << "seconds";
412 } else {
413 // FIXME: differentiate the error more here
414 onRefreshError(networkError, refreshReply);
415 }
416}
417
418void DeviceFlow::onRefreshError(QNetworkReply::NetworkError error, QNetworkReply *refreshReply) {
419 QString errorString = "No Reply";

Callers

nothing calls this directly

Calls 5

parseJsonResponseFunction · 0.85
errorMethod · 0.80
isEmptyMethod · 0.80
toStringMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected