57
55
QByteArray content = doc.toJson();
59
57
QString urlApps = getUrlApps();
60
m_request.setUrl(QUrl(urlApps));
61
m_nam.post(m_request, content);
58
QNetworkRequest request;
59
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
60
request.setUrl(QUrl(urlApps));
61
RequestObject* reqObject = new RequestObject(QString(APPS_DATA));
62
request.setOriginatingObject(reqObject);
63
m_nam.post(request, content);
66
66
QString Network::getUrlApps()
68
68
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
73
QString Network::getUrlPackage()
75
QProcessEnvironment environment = QProcessEnvironment::systemEnvironment();
76
QString command = environment.value("URL_PACKAGE", QString(URL_PACKAGE));
80
73
void Network::onReply(QNetworkReply *reply)
82
QVariant statusAttr = reply->attribute(
83
QNetworkRequest::HttpStatusCodeAttribute);
84
if (!statusAttr.isValid()) {
85
Q_EMIT errorOccurred();
89
int httpStatus = statusAttr.toInt();
91
if (httpStatus == 200 || httpStatus == 201) {
92
if (reply->hasRawHeader(X_CLICK_TOKEN)) {
93
Update* app = qobject_cast<Update*>(
94
reply->request().originatingObject());
96
QString header(reply->rawHeader(X_CLICK_TOKEN));
97
Q_EMIT clickTokenObtained(app, header);
75
if (reply->error() == QNetworkReply::NoError) {
76
QVariant statusAttr = reply->attribute(
77
QNetworkRequest::HttpStatusCodeAttribute);
78
if (!statusAttr.isValid()) {
79
Q_EMIT errorOccurred();
103
QByteArray payload = reply->readAll();
104
QJsonDocument document = QJsonDocument::fromJson(payload);
106
if (document.isArray()) {
107
QJsonArray array = document.array();
109
bool updates = false;
110
for (i = 0; i < array.size(); i++) {
111
QJsonObject object = array.at(i).toObject();
112
QString name = object.value("name").toString();
113
QString version = object.value("version").toString();
114
QString icon_url = object.value("icon_url").toString();
115
int size = object.value("binary_filesize").toVariant().toInt();
116
if (m_apps.contains(name)) {
117
m_apps[name]->setRemoteVersion(version);
118
if (m_apps[name]->updateRequired()) {
119
m_apps[name]->setIconUrl(icon_url);
120
m_apps[name]->setBinaryFilesize(size);
83
int httpStatus = statusAttr.toInt();
85
if (httpStatus == 200 || httpStatus == 201) {
86
if (reply->hasRawHeader(X_CLICK_TOKEN)) {
87
Update* app = qobject_cast<Update*>(
88
reply->request().originatingObject());
90
QString header(reply->rawHeader(X_CLICK_TOKEN));
91
Q_EMIT clickTokenObtained(app, header);
97
QByteArray payload = reply->readAll();
98
QJsonDocument document = QJsonDocument::fromJson(payload);
100
RequestObject* state = qobject_cast<RequestObject*>(reply->request().originatingObject());
101
if (state != nullptr && state->operation.contains(APPS_DATA) && document.isArray()) {
102
QJsonArray array = document.array();
103
bool updates = false;
104
for (int i = 0; i < array.size(); i++) {
105
QJsonObject object = array.at(i).toObject();
106
QString name = object.value("name").toString();
107
QString version = object.value("version").toString();
108
QString icon_url = object.value("icon_url").toString();
109
QString url = object.value("download_url").toString();
110
int size = object.value("binary_filesize").toVariant().toInt();
111
if (m_apps.contains(name)) {
112
m_apps[name]->setRemoteVersion(version);
113
if (m_apps[name]->updateRequired()) {
114
m_apps[name]->setIconUrl(icon_url);
115
m_apps[name]->setDownloadUrl(url);
116
m_apps[name]->setBinaryFilesize(size);
126
Q_EMIT updatesFound();
122
Q_EMIT updatesFound();
124
Q_EMIT updatesNotFound();
128
Q_EMIT updatesNotFound();
127
Q_EMIT errorOccurred();
130
} else if (document.isObject()) {
131
QJsonObject object = document.object();
132
QString url = object.value("download_url").toString();
133
QString name = object.value("name").toString();
134
Q_EMIT downloadUrlFound(name, url);
136
130
Q_EMIT errorOccurred();
132
} else if (reply->error() == QNetworkReply::TemporaryNetworkFailureError ||
133
reply->error() == QNetworkReply::UnknownNetworkError) {
134
Q_EMIT networkError();
139
Q_EMIT errorOccurred();
136
Q_EMIT serverError();
142
139
reply->deleteLater();
145
void Network::getResourceUrl(const QString &packagename)
147
QString urlPackage = getUrlPackage();
148
m_request.setUrl(QUrl(urlPackage + packagename));
149
m_nam.get(m_request);
152
142
void Network::getClickToken(Update *app, const QString &url,
153
143
const QString &authHeader)