debugging
This commit is contained in:
parent
6e16292f06
commit
27124380e4
8 changed files with 76 additions and 52 deletions
67
API/api.cpp
67
API/api.cpp
|
@ -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)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -22,6 +22,7 @@ struct Asset {
|
|||
class Assets : public QAbstractListModel {
|
||||
Q_OBJECT
|
||||
QML_ELEMENT
|
||||
QML_SINGLETON
|
||||
|
||||
public:
|
||||
explicit Assets (QObject* parent = nullptr);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue