void LoginManager::onGetScoreInfoReply(QNetworkReply* reply, int code, const QJsonObject& score) { if (code == HTTP_OK) { if (score.value("user") != QJsonValue::Undefined) { QJsonObject user = score.value("user").toObject(); QString title = score.value("title").toString(); QString description = score.value("description").toString(); QString sharing = score.value("sharing").toString(); QString license = score.value("license").toString(); QString tags = score.value("tags").toString(); QString url = score.value("custom_url").toString(); if (user.value("uid") != QJsonValue::Undefined) { int uid = user.value("uid").toString().toInt(); if (uid == _uid) emit getScoreSuccess(title, description, (sharing == "private"), license, tags, url); else emit getScoreError(""); } else { emit getScoreError(""); } } else { emit getScoreError(""); } } else emit getScoreError(getErrorString(reply, score)); }
void LoginManager::onGetScoreRequestReady(QByteArray ba) { //qDebug() << "onGetScoreRequestReady" << ba; //qDebug() << _oauthManager->lastError(); disconnect(_oauthManager, SIGNAL(requestReady(QByteArray)), this, SLOT(onGetScoreRequestReady(QByteArray))); if (_oauthManager->lastError() == KQOAuthManager::NoError) { QJsonDocument jsonResponse = QJsonDocument::fromJson(ba); QJsonObject score = jsonResponse.object(); if (score.value("user") != QJsonValue::Undefined) { QJsonObject user = score.value("user").toObject(); QString title = score.value("title").toString(); QString description = score.value("description").toString(); QString sharing = score.value("sharing").toString(); QString license = score.value("license").toString(); QString tags = score.value("tags").toString(); QString url = score.value("custom_url").toString(); if (user.value("uid") != QJsonValue::Undefined) { int uid = user.value("uid").toString().toInt(); if (uid == _uid) emit getScoreSuccess(title, description, (sharing == "private"), license, tags, url); else emit getScoreError(""); } else { emit getScoreError(""); } } else { emit getScoreError(""); } } else { emit getScoreError(""); } }
void LoginManager::getScoreInfo(int nid) { if (_accessToken.isEmpty() && _refreshToken.isEmpty()) { emit getScoreError("getScore - No token"); return; } ApiRequest r = ApiRequestBuilder() .setPath("/score/full-info") .setToken(_accessToken) .addGetParameter("score_id", QString::number(nid)) .build(); QNetworkReply* reply = _networkManager->get(r.request); connect(reply, &QNetworkReply::finished, this, [this, reply]() { onReplyFinished(reply, RequestType::GET_SCORE_INFO); }); }
void LoginManager::getScore(int nid) { //qDebug() << "getScore"; if (_accessToken.isEmpty() || _accessTokenSecret.isEmpty()) { emit getScoreError("getScore - No token"); return; } KQOAuthRequest * oauthRequest = new KQOAuthRequest(); oauthRequest->initRequest(KQOAuthRequest::AuthorizedRequest, QUrl(QString("https://api.musescore.com/services/rest/score/%1.json").arg(nid))); oauthRequest->setHttpMethod(KQOAuthRequest::GET); oauthRequest->setConsumerKey(_consumerKey); oauthRequest->setConsumerSecretKey(_consumerSecret); oauthRequest->setToken(_accessToken); oauthRequest->setTokenSecret(_accessTokenSecret); connect(_oauthManager, SIGNAL(requestReady(QByteArray)), this, SLOT(onGetScoreRequestReady(QByteArray))); _oauthManager->executeRequest(oauthRequest); }