Upgrade to version 4

This commit is contained in:
Aurélie Delhaie
2022-10-16 17:37:42 +02:00
parent fad936e21b
commit dcc90fb009
6 changed files with 400 additions and 32 deletions

75
version4upgrader.cpp Normal file
View File

@@ -0,0 +1,75 @@
#include "version4upgrader.h"
Version4Upgrader::Version4Upgrader()
{
}
QJsonObject Version4Upgrader::UpgradeDay(QJsonObject day)
{
if (!day["validate"].toBool(false)) {
day["not_working"] = true;
} else {
day["not_working"] = false;
}
return day;
}
QJsonObject Version4Upgrader::UpgradeDayTemplate(QJsonObject day)
{
day["not_working"] = false;
return day;
}
QJsonObject Version4Upgrader::UpgradeTemplate(QJsonObject week)
{
QJsonObject newTemplate;
newTemplate["monday"] = UpgradeDayTemplate(week["monday"].toObject());
newTemplate["tuesday"] = UpgradeDayTemplate(week["tuesday"].toObject());
newTemplate["wednesday"] = UpgradeDayTemplate(week["wednesday"].toObject());
newTemplate["thurday"] = UpgradeDayTemplate(week["thurday"].toObject());
newTemplate["friday"] = UpgradeDayTemplate(week["friday"].toObject());
newTemplate["weekNumber"] = week["weekNumber"].toInt();
return newTemplate;
}
QJsonArray Version4Upgrader::UpgradeWeeks(QJsonArray weeks)
{
QJsonArray newWeeks;
foreach (QJsonValue value, weeks) {
QJsonObject week = value.toObject();
QJsonObject newWeek;
newWeek["monday"] = UpgradeDay(week["monday"].toObject());
newWeek["tuesday"] = UpgradeDay(week["tuesday"].toObject());
newWeek["wednesday"] = UpgradeDay(week["wednesday"].toObject());
newWeek["thurday"] = UpgradeDay(week["thurday"].toObject());
newWeek["friday"] = UpgradeDay(week["friday"].toObject());
newWeek["weekNumber"] = week["weekNumber"].toInt();
newWeeks.append(newWeek);
}
return newWeeks;
}
QJsonArray Version4Upgrader::UpgradeYears(QJsonArray years)
{
QJsonArray newYears;
foreach (QJsonValue year, years) {
QJsonObject newYear;
newYear["number"] = year["number"];
newYear["weeks"] = UpgradeWeeks(year["weeks"].toArray());
newYears.append(newYear);
}
return newYears;
}
QJsonObject Version4Upgrader::Upgrade(QJsonObject old)
{
if (old["version"].toInt() == 3) {
QJsonObject newVersion;
newVersion["version"] = 4;
newVersion["template"] = UpgradeTemplate(old["template"].toObject());
newVersion["years"] = UpgradeYears(old["years"].toArray());
return newVersion;
}
return old;
}