MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / refresh

Method refresh

libraries/katabasis/src/DeviceFlow.cpp:368–399  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

366}
367
368bool DeviceFlow::refresh() {
369 qDebug() << "DeviceFlow::refresh: Token: ..." << refreshToken().right(7);
370
371 updateActivity(Activity::Refreshing);
372
373 if (refreshToken().isEmpty()) {
374 qWarning() << "DeviceFlow::refresh: No refresh token";
375 onRefreshError(QNetworkReply::AuthenticationRequiredError, nullptr);
376 return false;
377 }
378 if (options_.accessTokenUrl.isEmpty()) {
379 qWarning() << "DeviceFlow::refresh: Refresh token URL not set";
380 onRefreshError(QNetworkReply::AuthenticationRequiredError, nullptr);
381 return false;
382 }
383
384 QNetworkRequest refreshRequest(options_.accessTokenUrl);
385 refreshRequest.setHeader(QNetworkRequest::ContentTypeHeader, MIME_TYPE_XFORM);
386 QMap<QString, QString> parameters;
387 parameters.insert(OAUTH2_CLIENT_ID, options_.clientIdentifier);
388 if ( !options_.clientSecret.isEmpty() ) {
389 parameters.insert(OAUTH2_CLIENT_SECRET, options_.clientSecret);
390 }
391 parameters.insert(OAUTH2_REFRESH_TOKEN, refreshToken());
392 parameters.insert(OAUTH2_GRANT_TYPE, OAUTH2_REFRESH_TOKEN);
393
394 QByteArray data = buildRequestBody(parameters);
395 QNetworkReply *refreshReply = manager_->post(refreshRequest, data);
396 timedReplies_.add(refreshReply);
397 connect(refreshReply, &QNetworkReply::finished, this, &DeviceFlow::onRefreshFinished, Qt::QueuedConnection);
398 return true;
399}
400
401void DeviceFlow::onRefreshFinished() {
402 QNetworkReply *refreshReply = qobject_cast<QNetworkReply *>(sender());

Callers

nothing calls this directly

Calls 5

buildRequestBodyFunction · 0.85
isEmptyMethod · 0.80
insertMethod · 0.80
postMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected