Files
chronos-save-updater/version3upgrader.cpp
Aurélie Delhaie fad936e21b Switch to C++ and Qt
2021-10-25 22:49:07 +02:00

71 lines
2.3 KiB
C++

#include "version3upgrader.h"
Version3Upgrader::Version3Upgrader()
{
}
QJsonObject Version3Upgrader::UpgradeDay(QJsonObject day)
{
QTime start(12,0,0,0);
QTime end = start.addSecs(day["break"].toInt(45) * 60);
QJsonObject newDay;
newDay["breaks"] = QJsonArray {
QJsonObject {
{"start", start.toString(Qt::DateFormat::ISODate)},
{"end", end.toString(Qt::DateFormat::ISODate)}
}
};
newDay["start"] = day["start"].toString();
newDay["end"] = day["end"].toString();
newDay["validate"] = day["validate"].toBool(false);
return newDay;
}
QJsonObject Version3Upgrader::UpgradeTemplate(QJsonObject week)
{
QJsonObject newTemplate;
newTemplate["monday"] = UpgradeDay(week["monday"].toObject());
newTemplate["tuesday"] = UpgradeDay(week["tuesday"].toObject());
newTemplate["wednesday"] = UpgradeDay(week["wednesday"].toObject());
newTemplate["thurday"] = UpgradeDay(week["thurday"].toObject());
newTemplate["friday"] = UpgradeDay(week["friday"].toObject());
newTemplate["weekNumber"] = week["weekNumber"].toInt();
return newTemplate;
}
QJsonArray Version3Upgrader::UpgradeWeeks(QJsonArray weeks)
{
QDate d = QDate::currentDate();
QJsonArray years;
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);
}
QJsonObject year;
year["number"] = d.year();
year["weeks"] = newWeeks;
years.append(year);
return years;
}
QJsonObject Version3Upgrader::Upgrade(QJsonObject old)
{
if (old["version"].toInt() == 2) {
QJsonObject newVersion;
newVersion["version"] = 3;
newVersion["template"] = UpgradeTemplate(old["template"].toObject());
newVersion["years"] = UpgradeWeeks(old["weeks"].toArray());
return newVersion;
}
return old;
}