bool EnginioClientConnectionPrivate::appendIdToPathIfPossible(QString *path, const QString &id, QByteArray *errorMsg, EnginioClientConnectionPrivate::PathOptions flags, QByteArray errorMessageHint) { Q_ASSERT(path && errorMsg); if (id.isEmpty()) { if (flags == RequireIdInPath) { *errorMsg = constructErrorMessage(errorMessageHint); return false; } return true; } path->append('/'); path->append(id); return true; }
EnginioReply *setData(const int row, const QVariant &value, int role) { if (role > SyncedRole) { _rowsToSync.insert(row); const QString roleName(_roles.value(role)); QJsonObject oldObject = _data.at(row).toObject(); QJsonObject deltaObject; QJsonObject newObject = oldObject; deltaObject[roleName] = newObject[roleName] = QJsonValue::fromVariant(value); deltaObject[EnginioString::id] = newObject[EnginioString::id]; deltaObject[EnginioString::objectType] = newObject[EnginioString::objectType]; EnginioReply *id = _enginio->update(deltaObject, _operation); _dataChanged.insert(id, qMakePair(row, oldObject)); _data.replace(row, newObject); emit q->dataChanged(q->index(row), q->index(row)); return id; } EnginioClientPrivate *client = EnginioClientPrivate::get(_enginio); QNetworkReply *nreply = new EnginioFakeReply(client, constructErrorMessage(QByteArrayLiteral("EnginioModel: Trying to update an object with unknown role"))); EnginioReply *ereply = new EnginioReply(client, nreply); return ereply; }