#include "token.h" #include #include #include Token::~Token() = default; QByteArray Token::tokensToColnodJson(const QHash> &tokens) { QJsonObject items; QJsonArray jsonTokens; for (const auto& token : tokens) { jsonTokens.push_back(QJsonValue(QJsonDocument::fromJson(token->jsonData()).object())); } items.insert("items", jsonTokens); QJsonDocument doc; doc.setObject(items); return doc.toJson(); } QByteArray Token::jsonData(const QSet &filters) const { auto variantMap = this->toVariantMap(filters); auto enabled = variantMap["enabled"].toBool(); auto noValidity = variantMap["noValidity"].toBool(); variantMap.remove("enabled"); variantMap.remove("noValidity"); variantMap.remove("lastModified"); variantMap.remove("deleted"); variantMap.remove("lastUpdate"); QVariantList flags; if ( enabled ) { flags << "Enabled"; } if ( noValidity ) { flags << "NoValidity"; } variantMap.insert("flags", flags); QJsonDocument doc = QJsonDocument::fromVariant(variantMap); return doc.toJson(QJsonDocument::Compact); } bool Token::fromJson(const QByteArray &data) { QJsonDocument doc = QJsonDocument::fromJson(data); QVariantMap variant = qvariant_cast(doc.toVariant()); QVariantList flags = variant["flags"].toList(); for (const auto &value : flags) { if ( value.toString() == "Enabled") { variant.insert("enabled", true); } if ( value.toString() == "NoValidity") { variant.insert("noValidity", true); } } variant.remove("flags"); auto lastUpdate = variant["lastUpdate"].toLongLong(); variant["lastUpdate"] = QDateTime::fromMSecsSinceEpoch(lastUpdate); variant.insert("lastModified", QDateTime::fromMSecsSinceEpoch(lastUpdate)); // Populate this object data bool res = fromVariantMap(variant); return res; } QByteArray Token::idsToJSON(const QList &ids) { QJsonArray jsonIds; for (const auto& id : ids) { jsonIds.push_back(id); } QJsonObject items; items.insert("items", jsonIds); QJsonDocument doc; doc.setObject(items); return doc.toJson(); }