void QBNetwork::onRequestUsers() { QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); if (reply) { const int available = reply->bytesAvailable(); if (available > 0) { const QByteArray buffer(reply->readAll()); QString response = QString::fromUtf8(buffer); JsonDataAccess jda; QVariant qtData = jda.loadFromBuffer(response); if (jda.hasError()) { const DataAccessError err = jda.error(); emit error( tr("Error converting JSON data: %1").arg( err.errorMessage())); } else { emit usersReceived(response); } } else { emit error("Wrong reply for request users request"); } reply->deleteLater(); } else { emit error("Wrong reply for request users request"); } disconnectFromAll(); }
void QBNetwork::onRequestSessionRegister() { QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); QString response; if (reply) { const int available = reply->bytesAvailable(); if (available > 0) { const QByteArray buffer(reply->readAll()); response = QString::fromUtf8(buffer); JsonDataAccess jda; QVariant qtData = jda.loadFromBuffer(response); if (jda.hasError()) { const DataAccessError err = jda.error(); emit error( tr("Error converting JSON data: %1").arg( err.errorMessage())); } else { const QVariantMap object = qtData.value<QVariantMap>(); QMapIterator<QString, QVariant> it(object); while (it.hasNext()) { it.next(); if (it.key() == "session") { QVariantMap sessObject = it.value().toMap(); QMapIterator<QString, QVariant> sit(sessObject); while (sit.hasNext()) { sit.next(); if (sit.key() == "user_id") { m_userId = sit.value().toString(); } if (sit.key() == "token") { m_token = sit.value().toString(); } } } } if (m_token != NULL) { //register after we have session emit sessionEstablished(); registerNewUser(); } else { emit error("Wrong reply for register session request"); } } } else { emit error("Wrong reply for register session request"); } reply->deleteLater(); } else { emit error("Wrong reply for register session request"); } disconnectFromAll(); }
void QBNetwork::onRequestLogin() { QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); QString response; if (reply) { if (reply->error() == QNetworkReply::NoError) { const int available = reply->bytesAvailable(); if (available > 0) { const QByteArray buffer(reply->readAll()); response = QString::fromUtf8(buffer); JsonDataAccess jda; QVariant qtData = jda.loadFromBuffer(response); if (jda.hasError()) { const DataAccessError err = jda.error(); showError( tr("Error converting JSON data: %1").arg( err.errorMessage())); } else { const QVariantMap object = qtData.value<QVariantMap>(); QMapIterator<QString, QVariant> it(object); while (it.hasNext()) { it.next(); if (it.key() == "user") { QVariantMap sessObject = it.value().toMap(); QMapIterator<QString, QVariant> sit(sessObject); while (sit.hasNext()) { sit.next(); if (sit.key() == "id") { break; } } } } } } } else { if (reply->error() < 100) { showError("Please check your internet connection"); return; } response = tr("Error: %1 status: %2").arg(reply->errorString(), reply->attribute( QNetworkRequest::HttpStatusCodeAttribute).toString()); } reply->deleteLater(); } requestUsers(); }
//! [2] void App::convertQtToJson() { const QString result = tr("Converting ... "); setResult(result); setRhsTitleAndText(mRhsDefaultTitle, ""); QString jsonBuffer; JsonDataAccess jda; jda.saveToBuffer(mQtData, &jsonBuffer); if (jda.hasError()) { const DataAccessError err = jda.error(); const QString errorMsg = tr("Error converting Qt data to JSON: %1").arg(err.errorMessage()); setResultAndState(errorMsg, QtDisplayed); } else { setRhsTitleAndText(tr("JSON Data from Qt"), jsonBuffer); setResultAndState(result + tr("Success"), ReadyToWrite); } }
void MyListModel::load(const QString& file_name) { // clear model clear(); // clear not filtered data cache m_data.clear(); { JsonDataAccess jda; m_data = jda.load(file_name).toList(); if (jda.hasError()) { DataAccessError error = jda.error(); qDebug() << file_name << "JSON loading error: " << error.errorType() << ": " << error.errorMessage(); } else { qDebug() << file_name << "JSON data loaded OK!"; // when loaded, show all data (no filtering) append(m_data); } } }
//! [3] void App::writeToJsonFileAndReload() { const QString result = tr("Writing file ... "); setResult(result); const QDir home = QDir::home(); QTemporaryFile file(home.absoluteFilePath("XXXXXX.json")); if (file.open()) { JsonDataAccess jda(&file); jda.save(mQtData, &file); if (jda.hasError()) { const DataAccessError err = jda.error(); const QString errorMsg = tr("Error writing data to JSON file: %1").arg(err.errorMessage()); setResultAndState(errorMsg, ReadyToWrite); } else { file.close(); loadJsonFileRaw(tr("Reloading new JSON file ... "), file); } } }
//! [1] void App::convertJsonToQt() { const QString result = tr("Converting ... "); setResult(result); setRhsTitleAndText(mRhsDefaultTitle, ""); setQtData (QVariant()); JsonDataAccess jda; QVariant qtData = jda.loadFromBuffer(mJsonData); if (jda.hasError()) { const DataAccessError err = jda.error(); const QString errorMsg = tr("Error converting JSON data: %1").arg(err.errorMessage()); setResultAndState(errorMsg, JsonLoaded); } else { setQtData(qtData); const QtObjectFormatter fmt; setRhsTitleAndText(tr("Qt Data from JSON"), fmt.asString(qtData)); setResultAndState(result + tr("Success"), QtDisplayed); } }
void QBNetwork::onRegistrationNewUser() { QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); if (reply) { const int available = reply->bytesAvailable(); if (available > 0) { const QByteArray buffer(reply->readAll()); QString response = QString::fromUtf8(buffer); JsonDataAccess jda; QVariant qtData = jda.loadFromBuffer(response); if (jda.hasError()) { const DataAccessError err = jda.error(); emit error( tr("Error converting JSON data: %1").arg( err.errorMessage())); } else { QVariantMap userDetails = qtData.toMap()["user"].toMap(); if (userDetails.contains("id")) { m_userId = userDetails["id"].toString(); } } if (m_token != NULL && m_userId != NULL) { emit registered(); // requestLogin(); } } else { emit error("Wrong reply for register new user request"); } reply->deleteLater(); } else { emit error("Wrong reply for register new user request"); } disconnectFromAll(); }
void QBNetwork::onRequestUsers() { QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); QString response; if (reply) { if (reply->error() == QNetworkReply::NoError) { const int available = reply->bytesAvailable(); if (available > 0) { const QByteArray buffer(reply->readAll()); response = QString::fromUtf8(buffer); QFile destFile("app/native/assets/users.json"); if (!destFile.open(QIODevice::WriteOnly)) return; destFile.write(response.toAscii()); destFile.close(); JsonDataAccess jda; QVariant qtData = jda.loadFromBuffer(response); if (jda.hasError()) { const DataAccessError err = jda.error(); showError( tr("Error converting JSON data: %1").arg( err.errorMessage())); } else { const QVariantMap object = qtData.value<QVariantMap>(); QMapIterator<QString, QVariant> it(object); while (it.hasNext()) { it.next(); if (it.key() == "user") { QVariantMap sessObject = it.value().toMap(); QMapIterator<QString, QVariant> sit(sessObject); while (sit.hasNext()) { sit.next(); if (sit.key() == "id") { break; } } } } } successLoad = true; emit loadingChanged(); emit completeLogin(); } } else { successLoad = true; emit loadingChanged(); if (reply->error() < 100) { showError("Please check your internet connection"); return; } response = tr("Error: %1 status: %2").arg(reply->errorString(), reply->attribute( QNetworkRequest::HttpStatusCodeAttribute).toString()); showError("QBlox Server Error = " + response); } reply->deleteLater(); } }
void QBNetwork::onRequestSessionWithLogin() { QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); QString response; if (reply) { if (reply->error() == QNetworkReply::NoError) { successShow = true; emit unauthorizedChanged(); const int available = reply->bytesAvailable(); if (available > 0) { const QByteArray buffer(reply->readAll()); response = QString::fromUtf8(buffer); JsonDataAccess jda; QVariant qtData = jda.loadFromBuffer(response); if (jda.hasError()) { const DataAccessError err = jda.error(); showError( tr("Error converting JSON data: %1").arg( err.errorMessage())); } else { const QVariantMap object = qtData.value<QVariantMap>(); QMapIterator<QString, QVariant> it(object); while (it.hasNext()) { it.next(); if (it.key() == "session") { QVariantMap sessObject = it.value().toMap(); QMapIterator<QString, QVariant> sit(sessObject); while (sit.hasNext()) { sit.next(); if (sit.key() == "user_id") { m_userId = sit.value().toString(); } else if (sit.key() == "token") { m_token = sit.value().toString(); } } } } } if (m_token != NULL && m_userId != NULL) { requestLogin(); } } } else { successShow = false; successLoad = true; emit unauthorizedChanged(); emit loadingChanged(); emit completeLogin(); if (reply->error() < 100) { showError("Please check your internet connection"); return; } response = tr("Error: %1 status: %2").arg(reply->errorString(), reply->attribute( QNetworkRequest::HttpStatusCodeAttribute).toString()); if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toString() == "401") { showError("Incorrect login or password"); return; } else if (reply->attribute( QNetworkRequest::HttpStatusCodeAttribute).toString() == "422") { showError("User is not registered 1"); return; } else if (reply->attribute( QNetworkRequest::HttpStatusCodeAttribute).toString() == "404") { showError("The requested resource could not be found"); return; } else { //another error showError("QBlox Server Error = " + response); return; } } reply->deleteLater(); } /* successLoad = true; emit loadingChanged(); emit completeLogin();*/ }
//SLOTS void QBNetwork::onRequestSessionRegister() { QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); QString response; if (reply) { if (reply->error() == QNetworkReply::NoError) { const int available = reply->bytesAvailable(); if (available > 0) { const QByteArray buffer(reply->readAll()); response = QString::fromUtf8(buffer); QFile sourceFile("app/native/assets/JDataSession.json"); if (!sourceFile.open(QIODevice::WriteOnly)) return; sourceFile.write(response.toAscii()); JsonDataAccess jda; QVariant qtData = jda.loadFromBuffer(response); if (jda.hasError()) { const DataAccessError err = jda.error(); showError( tr("Error converting JSON data: %1").arg( err.errorMessage())); } else { const QVariantMap object = qtData.value<QVariantMap>(); QMapIterator<QString, QVariant> it(object); while (it.hasNext()) { it.next(); if (it.key() == "session") { QVariantMap sessObject = it.value().toMap(); QMapIterator<QString, QVariant> sit(sessObject); while (sit.hasNext()) { sit.next(); if (sit.key() == "user_id") { m_userId = sit.value().toString(); } if (sit.key() == "token") { m_token = sit.value().toString(); } } } } } } } else { successLoad = true; emit loadingChanged(); emit unauthorizedChanged(); emit completeLogin(); if (reply->error() < 100) { showError("Please check your internet connection"); return; } if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toString() == "401") { showError("Incorrect login or password"); return; } else if (reply->attribute( QNetworkRequest::HttpStatusCodeAttribute).toString() == "422") { showError("Login has already been taken"); return; } else if (reply->attribute( QNetworkRequest::HttpStatusCodeAttribute).toString() == "404") { showError("The requested resource could not be found"); return; } else { //another error showError("QBlox Server Error = " + response); return; } } reply->deleteLater(); } //successLoad = true; //emit loadingChanged(); //emit unauthorizedChanged(); //emit completeLogin(); registrationNewUser(); }