Beispiel #1
0
void FbxAPI::requestSessionFinished()
{
    QNetworkReply * reply = qobject_cast<QNetworkReply*>(sender());
    QJsonDocument doc = QJsonDocument::fromJson(reply->readAll());

    if (parseResult(doc))
    {
        mRequestLoginAttempt = 0;
        mSessionToken = doc.object().value("result").toObject().value("session_token").toString();
        mPermissions = doc.object().value("result").toObject().value("permissions").toObject().keys();
        mLogged = true;
        emit sessionReceived();
        emit loginSuccess();
    }
}
Beispiel #2
0
void LastFMAuth::replyReceived(QNetworkReply *reply)
{
    if (reply->error() != QNetworkReply::NoError)
    {
        if (_errorString)
            *_errorString = reply->errorString();
        State old = _state;
        _state = Idle;
        switch (old)
        {
        case RequestingToken:
            emit tokenReceived(true);
            return;
        case RequestingSession:
            emit sessionReceived(true);
            return;
        default: return;
        }
    }

    if (_state == RequestingToken)
    {
        QDomDocument document;
        QString data;
        document.setContent(reply);
        QDomElement elem = document.firstChildElement("lfm").firstChildElement("error");
        data = elem.text();
        if (!data.isEmpty())
        {
            if (_errorString)
                *_errorString = data;
            emit tokenReceived(true);
        }
        else
        {
            _token = document.firstChildElement("lfm").firstChildElement("token").text();
            emit tokenReceived(false);
        }
    }
    else if (_state == RequestingSession)
    {
        QDomDocument document;
        QString data;
        document.setContent(reply);
        QDomElement elem = document.firstChildElement("lfm").firstChildElement("error");
        data = elem.text();
        if (!data.isEmpty())
        {
            if (_errorString)
                *_errorString = data;
            emit sessionReceived(true);
        }
        else
        {
            _session = document.firstChildElement("lfm").firstChildElement("session").firstChildElement("key").text();
            emit sessionReceived(false);
        }
    }

    _state = Idle;
}