cron job load and store events

This commit is contained in:
Emanuele Trabattoni
2025-07-27 15:49:40 +02:00
parent ad90702ab6
commit 1d1eb6fbfa
9 changed files with 163 additions and 50 deletions

View File

@@ -51,13 +51,26 @@ namespace commands
// CRONJOBS //
// CRONJOBS //
const ArduinoJson::JsonDocument Commands::loadCronjob(const devices_t &dev, const ArduinoJson::JsonDocument &params){
ArduinoJson::JsonDocument response;
response["cmd"] = "loadCronjob";
auto& cron = Cron::getInstance(dev);
if(!cron.loadEvents()){
LOG_ERROR("loadCronJob failed to load events from flash");
response["values"]["status"] = "invalid";
return response;
}
response["values"]["status"] = "valid";
return response;
}
const ArduinoJson::JsonDocument Commands::setCronjob(const devices_t &dev, const ArduinoJson::JsonDocument &params)
{
ArduinoJson::JsonDocument response;
response["cmd"] = "setCronjob";
const auto &jobName = params["name"].as<std::string>();
const auto &timeStr = params["timeStr"].as<std::string>();
const auto &timeStr = params["cronExpr"].as<std::string>();
const auto &actionStr = params["action"].as<std::string>();
ArduinoJson::JsonDocument action;
@@ -94,14 +107,14 @@ namespace commands
}
auto cmd = std::get<0>(event);
auto chronExpr = std::get<1>(event);
auto cronExpr = std::get<1>(event);
auto cmdParams = std::get<3>(event);
ArduinoJson::JsonDocument action;
action["cmd"] = cmd;
action["params"] = cmdParams;
response["values"]["name"] = eventName;
response["values"]["timeStr"] = cron::to_cronstr(chronExpr);
response["values"]["cronExpr"] = cron::to_cronstr(cronExpr);
response["values"]["action"] = action;
LOG_INFO("getCronjob get job [", eventName.c_str(), "]");
@@ -122,6 +135,20 @@ namespace commands
response["values"]["status"] = "valid";
return response;
}
const ArduinoJson::JsonDocument Commands::storeCronjob(const devices_t &dev, const ArduinoJson::JsonDocument &params)
{
ArduinoJson::JsonDocument response;
response["cmd"] = "storeCronjob";
auto& cron = Cron::getInstance(dev);
if(!cron.storeEvents()){
LOG_ERROR("storeCronJob failed to store events in flash");
response["values"]["status"] = "invalid";
return response;
}
response["values"]["status"] = "valid";
return response;
}
// CRONJOBS //
// CRONJOBS //