Further refactoring after the addition of the type role.
This commit is contained in:
@ -58,29 +58,18 @@ QJsonObject JsonParser::itemValuesToJsonObject(const ModelItemValues& itemValues
|
|||||||
|
|
||||||
// TODO add dates (entry, modification, end)
|
// TODO add dates (entry, modification, end)
|
||||||
const UserRoles idRole = IdRole;
|
const UserRoles idRole = IdRole;
|
||||||
const QString roleName = ROLE_NAMES.value(idRole);
|
const QJsonValue idValue = extractJsonValue(itemValues, idRole);
|
||||||
const QVariant idValue = itemValues.value(idRole);
|
|
||||||
if (!idValue.isNull()) {
|
if (!idValue.isNull()) {
|
||||||
const QString idRoleName = ROLE_NAMES.value(idRole);
|
const QString idRoleName = ROLE_NAMES.value(idRole);
|
||||||
result.insert(idRoleName, idValue.toString());
|
result.insert(idRoleName, idValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
QListIterator<UserRoles> i(USER_FACING_ROLES);
|
QListIterator<UserRoles> i(USER_FACING_ROLES);
|
||||||
while (i.hasNext()) {
|
while (i.hasNext()) {
|
||||||
const UserRoles role = i.next();
|
const UserRoles role = i.next();
|
||||||
|
const QJsonValue jsonValue = extractJsonValue(itemValues, role);
|
||||||
const QString roleName = ROLE_NAMES.value(role);
|
const QString roleName = ROLE_NAMES.value(role);
|
||||||
const QVariant value = itemValues.value(role);
|
result.insert(roleName, jsonValue);
|
||||||
if (STRING_ROLES.contains(role)) {
|
|
||||||
result.insert(roleName, value.toString());
|
|
||||||
} else if (INT_ROLES.contains(role)) {
|
|
||||||
result.insert(roleName, value.toInt());
|
|
||||||
} else if (DOUBLE_ROLES.contains(role)) {
|
|
||||||
result.insert(roleName, value.toDouble());
|
|
||||||
} else if (TYPE_ROLES.contains(role)) {
|
|
||||||
result.insert(roleName, value.toString());
|
|
||||||
} else {
|
|
||||||
qCritical() << QString("Can't find data type for role %1!!!").arg(role);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -134,3 +123,21 @@ pair<int, QVariant> JsonParser::getKeyValuePair(const QJsonObject& itemJsonObjec
|
|||||||
}
|
}
|
||||||
return pair<int, QVariant>(role, result);
|
return pair<int, QVariant>(role, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QJsonValue JsonParser::extractJsonValue(const ModelItemValues& itemValues, const int role) {
|
||||||
|
QJsonValue result;
|
||||||
|
const QString roleName = ROLE_NAMES.value(role);
|
||||||
|
const QVariant value = itemValues.value(role);
|
||||||
|
if (STRING_ROLES.contains(role)) {
|
||||||
|
result = value.toString();
|
||||||
|
} else if (INT_ROLES.contains(role)) {
|
||||||
|
result = value.toInt();
|
||||||
|
} else if (DOUBLE_ROLES.contains(role)) {
|
||||||
|
result = value.toDouble();
|
||||||
|
} else if (TYPE_ROLES.contains(role)) {
|
||||||
|
result = value.toString();
|
||||||
|
} else {
|
||||||
|
qCritical() << QString("Can't find data type for role %1!!!").arg(role);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|||||||
@ -27,6 +27,8 @@ class JsonParser {
|
|||||||
static ModelItemValues jsonObjectToItemValues(const QJsonObject& itemJsonObject);
|
static ModelItemValues jsonObjectToItemValues(const QJsonObject& itemJsonObject);
|
||||||
|
|
||||||
static pair<int, QVariant> getKeyValuePair(const QJsonObject& itemJsonObject, const int role);
|
static pair<int, QVariant> getKeyValuePair(const QJsonObject& itemJsonObject, const int role);
|
||||||
|
|
||||||
|
static QJsonValue extractJsonValue(const ModelItemValues& itemValues, const int role);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // JSONPARSER_H
|
#endif // JSONPARSER_H
|
||||||
|
|||||||
Reference in New Issue
Block a user