Further refactoring after the addition of the type role.
This commit is contained in:
@ -57,30 +57,19 @@ QJsonObject JsonParser::itemValuesToJsonObject(const ModelItemValues& itemValues
|
||||
QJsonObject result;
|
||||
|
||||
// TODO add dates (entry, modification, end)
|
||||
const UserRoles idRole = IdRole;
|
||||
const QString roleName = ROLE_NAMES.value(idRole);
|
||||
const QVariant idValue = itemValues.value(idRole);
|
||||
const UserRoles idRole = IdRole;
|
||||
const QJsonValue idValue = extractJsonValue(itemValues, idRole);
|
||||
if (!idValue.isNull()) {
|
||||
const QString idRoleName = ROLE_NAMES.value(idRole);
|
||||
result.insert(idRoleName, idValue.toString());
|
||||
result.insert(idRoleName, idValue);
|
||||
}
|
||||
|
||||
QListIterator<UserRoles> i(USER_FACING_ROLES);
|
||||
while (i.hasNext()) {
|
||||
const UserRoles role = i.next();
|
||||
const QString roleName = ROLE_NAMES.value(role);
|
||||
const QVariant value = itemValues.value(role);
|
||||
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);
|
||||
}
|
||||
const UserRoles role = i.next();
|
||||
const QJsonValue jsonValue = extractJsonValue(itemValues, role);
|
||||
const QString roleName = ROLE_NAMES.value(role);
|
||||
result.insert(roleName, jsonValue);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -134,3 +123,21 @@ pair<int, QVariant> JsonParser::getKeyValuePair(const QJsonObject& itemJsonObjec
|
||||
}
|
||||
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 pair<int, QVariant> getKeyValuePair(const QJsonObject& itemJsonObject, const int role);
|
||||
|
||||
static QJsonValue extractJsonValue(const ModelItemValues& itemValues, const int role);
|
||||
};
|
||||
|
||||
#endif // JSONPARSER_H
|
||||
|
||||
Reference in New Issue
Block a user