debugging

This commit is contained in:
Blue 2024-01-18 19:14:33 -03:00
parent 6e16292f06
commit 27124380e4
Signed by: blue
GPG key ID: 9B203B252A63EE38
8 changed files with 76 additions and 52 deletions

View file

@ -290,7 +290,8 @@ void API::addAsset(const QString& title, const QString& icon, const QJSValue &fi
request.setRawHeader("Authorization", "Bearer " + accessToken.toUtf8());
QNetworkReply* reply = network.post(request, params.toString(QUrl::FullyEncoded).toUtf8());
connect(reply, &QNetworkReply::finished,
std::bind(&API::onAssetAdded, this, reply, finished)
this, std::bind(&API::onAssetAdded, this, reply, finished),
Qt::QueuedConnection
);
}
@ -313,18 +314,16 @@ void API::sendPoll(bool clear) {
if (clear)
url.setQuery(QUrlQuery({{"clearCache", "all"}}));
QByteArray authorizationHeader = "Bearer " + accessToken.toUtf8();
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, json);
request.setRawHeader("Authorization", authorizationHeader);
request.setRawHeader("Authorization", "Bearer " + accessToken.toUtf8());
request.setTransferTimeout(30000);
pollReply = std::unique_ptr<QNetworkReply>(network.get(request));
connect(
pollReply.get(), &QNetworkReply::finished,
this, &API::onPollFinished,
Qt::QueuedConnection
);
this, &API::onPollFinished, Qt::QueuedConnection
);
}
void API::onPollFinished() {
@ -371,40 +370,33 @@ void API::onPollFinished() {
bool API::handleChanges(const QVariantMap& changes) {
QVariantMap::ConstIterator itr = changes.constFind("system");
if (itr != changes.constEnd()) {
const QVariant& vsys = itr.value();
if (vsys.canConvert<QVariantMap>()) {
const QVariantMap& sys = qast<QVariantMap>(vsys);
QVariantMap::ConstIterator invItr = sys.constFind("invalidate");
if (invItr != sys.constEnd()) {
const QVariant& vinv = invItr.value();
if (vinv.canConvert<bool>() && vinv.toBool())
resetAllModels();
}
if (itr != changes.constEnd() && itr.value().canConvert<QVariantMap>()) {
const QVariantMap& sys = qast<QVariantMap>(itr.value());
QVariantMap::ConstIterator invItr = sys.constFind("invalidate");
if (invItr != sys.constEnd()) {
const QVariant& vinv = invItr.value();
if (vinv.canConvert<bool>() && vinv.toBool())
resetAllModels();
}
}
itr = changes.constFind("assets");
if (itr != changes.constEnd()) {
const QVariant& vassets = itr.value();
if (vassets.canConvert<QVariantMap>()) {
const QVariantMap& assets = qast<QVariantMap>(vassets);
QVariantMap::ConstIterator aItr = assets.constFind("invalidate");
if (aItr != assets.constEnd()) {
const QVariant& vinv = aItr.value();
if (vinv.canConvert<bool>() && vinv.toBool())
API::assets.clear();
}
if (itr != changes.constEnd() && itr.value().canConvert<QVariantMap>()) {
const QVariantMap& assets = qast<QVariantMap>(itr.value());
QVariantMap::ConstIterator aItr = assets.constFind("invalidate");
if (aItr != assets.constEnd()) {
const QVariant& vinv = aItr.value();
if (vinv.canConvert<bool>() && vinv.toBool())
API::assets.clear();
}
aItr = assets.constFind("added");
if (aItr != assets.constEnd()) {
const QVariant& vadd = aItr.value();
std::deque<Models::Asset> added;
if (!Models::Assets::deserialize(qast<QVariantList>(itr.value()), added))
qDebug() << "Error deserializng added assets";
else
API::assets.addAssets(added);
}
aItr = assets.constFind("added");
if (aItr != assets.constEnd() && aItr.value().canConvert<QVariantList>()) {
std::deque<Models::Asset> added;
if (!Models::Assets::deserialize(qast<QVariantList>(aItr.value()), added))
qDebug() << "Error deserializng added assets";
else
API::assets.addAssets(added);
}
}
@ -428,14 +420,13 @@ void API::requestAssets() {
qDebug() << "Requesting assets...";
QUrl url = createUrl("/listAssets");
QByteArray authorizationHeader = "Bearer " + accessToken.toUtf8();
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, json);
request.setRawHeader("Authorization", authorizationHeader);
request.setRawHeader("Authorization", "Bearer " + accessToken.toUtf8());
QNetworkReply* reply = network.get(request);
connect(
pollReply.get(), &QNetworkReply::finished,
reply, &QNetworkReply::finished,
this, std::bind(&API::responseAssets, this, reply)
);
}

View file

@ -82,6 +82,7 @@ void Models::Assets::fetchMore (const QModelIndex& parent) {
return;
state = State::requesting;
emit requestAssets();
}
QVariant Models::Assets::data (const QModelIndex& index, int role) const {
@ -116,7 +117,7 @@ bool Models::Assets::deserialize (const QVariantList& from, std::deque<Asset>& o
asset.title = ser.value("title").toString();
asset.icon = ser.value("icon").toString();
asset.archived = ser.value("archived").toBool();
asset.id = ser.value("archived").toUInt();
asset.id = ser.value("id").toUInt();
}
return true;

View file

@ -22,6 +22,7 @@ struct Asset {
class Assets : public QAbstractListModel {
Q_OBJECT
QML_ELEMENT
QML_SINGLETON
public:
explicit Assets (QObject* parent = nullptr);