diff --git a/src/controller/controller_api.cpp b/src/controller/controller_api.cpp index c7e048c1..378c2da7 100644 --- a/src/controller/controller_api.cpp +++ b/src/controller/controller_api.cpp @@ -257,6 +257,20 @@ void Controller::handleAPICommands(JSON::Value & Request, JSON::Value & Response if (in.isMember("serverid")){ out["serverid"] = in["serverid"]; } + if (in.isMember("triggers")){ + out["triggers"] = in["triggers"]; + if (!out["triggers"].isObject()){ + out.removeMember("triggers"); + }else{ + jsonForEach(out["triggers"], it){ + if (it->isArray()){ + jsonForEach((*it), jt){ + jt->removeNullMembers(); + } + } + } + } + } if (in.isMember("accesslog")){ out["accesslog"] = in["accesslog"]; Controller::accesslog = out["accesslog"].asStringRef(); diff --git a/src/controller/controller_storage.cpp b/src/controller/controller_storage.cpp index 05cc721f..b31f7a25 100644 --- a/src/controller/controller_storage.cpp +++ b/src/controller/controller_storage.cpp @@ -200,7 +200,7 @@ namespace Controller{ } if (triggIt->isObject()){ - if (!triggIt->isMember("handler")){continue;} + if (!triggIt->isMember("handler") || (*triggIt)["handler"].isNull()){continue;} tPage.setString("url", (*triggIt)["handler"].asStringRef(), i); tPage.setInt("sync", ((*triggIt)["sync"].asBool() ? 1 : 0), i); char *strmP = tPage.getPointer("streams", i); @@ -216,7 +216,7 @@ namespace Controller{ if (namesArray.size()){memcpy(strmP, namesArray.data(), std::min(namesArray.size(), (size_t)256));} } } - if (triggIt->isMember("params")){ + if (triggIt->isMember("params") && !(*triggIt)["params"].isNull()){ tPage.setString("params", (*triggIt)["params"].asStringRef(), i); }else{ tPage.setString("params", "", i);