This commit is contained in:
J. Nick Koston
2025-06-28 22:08:47 -05:00
parent 553d441ecc
commit a5fd440e25

View File

@@ -371,7 +371,7 @@ void WebServer::handle_js_request(AsyncWebServerRequest *request) {
(root)["state"] = state; (root)["state"] = state;
// Helper to get request detail parameter // Helper to get request detail parameter
static JsonDetail get_request_detail_(AsyncWebServerRequest *request) { static JsonDetail get_request_detail(AsyncWebServerRequest *request) {
auto *param = request->getParam("detail"); auto *param = request->getParam("detail");
return (param && param->value() == "all") ? DETAIL_ALL : DETAIL_STATE; return (param && param->value() == "all") ? DETAIL_ALL : DETAIL_STATE;
} }
@@ -387,7 +387,7 @@ void WebServer::handle_sensor_request(AsyncWebServerRequest *request, const UrlM
if (obj->get_object_id() != match.id) if (obj->get_object_id() != match.id)
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->sensor_json(obj, obj->state, detail); std::string data = this->sensor_json(obj, obj->state, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -437,7 +437,7 @@ void WebServer::handle_text_sensor_request(AsyncWebServerRequest *request, const
if (obj->get_object_id() != match.id) if (obj->get_object_id() != match.id)
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->text_sensor_json(obj, obj->state, detail); std::string data = this->text_sensor_json(obj, obj->state, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -481,7 +481,7 @@ void WebServer::handle_switch_request(AsyncWebServerRequest *request, const UrlM
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->switch_json(obj, obj->state, detail); std::string data = this->switch_json(obj, obj->state, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
} else if (match.method == "toggle") { } else if (match.method == "toggle") {
@@ -528,7 +528,7 @@ void WebServer::handle_button_request(AsyncWebServerRequest *request, const UrlM
if (obj->get_object_id() != match.id) if (obj->get_object_id() != match.id)
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->button_json(obj, detail); std::string data = this->button_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
} else if (match.method == "press") { } else if (match.method == "press") {
@@ -574,7 +574,7 @@ void WebServer::handle_binary_sensor_request(AsyncWebServerRequest *request, con
if (obj->get_object_id() != match.id) if (obj->get_object_id() != match.id)
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->binary_sensor_json(obj, obj->state, detail); std::string data = this->binary_sensor_json(obj, obj->state, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -618,7 +618,7 @@ void WebServer::handle_fan_request(AsyncWebServerRequest *request, const UrlMatc
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->fan_json(obj, detail); std::string data = this->fan_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
} else if (match.method == "toggle") { } else if (match.method == "toggle") {
@@ -704,7 +704,7 @@ void WebServer::handle_light_request(AsyncWebServerRequest *request, const UrlMa
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->light_json(obj, detail); std::string data = this->light_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
} else if (match.method == "toggle") { } else if (match.method == "toggle") {
@@ -825,7 +825,7 @@ void WebServer::handle_cover_request(AsyncWebServerRequest *request, const UrlMa
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->cover_json(obj, detail); std::string data = this->cover_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -911,7 +911,7 @@ void WebServer::handle_number_request(AsyncWebServerRequest *request, const UrlM
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->number_json(obj, obj->state, detail); std::string data = this->number_json(obj, obj->state, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -986,7 +986,7 @@ void WebServer::handle_date_request(AsyncWebServerRequest *request, const UrlMat
if (obj->get_object_id() != match.id) if (obj->get_object_id() != match.id)
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->date_json(obj, detail); std::string data = this->date_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1050,7 +1050,7 @@ void WebServer::handle_time_request(AsyncWebServerRequest *request, const UrlMat
if (obj->get_object_id() != match.id) if (obj->get_object_id() != match.id)
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->time_json(obj, detail); std::string data = this->time_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1113,7 +1113,7 @@ void WebServer::handle_datetime_request(AsyncWebServerRequest *request, const Ur
if (obj->get_object_id() != match.id) if (obj->get_object_id() != match.id)
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->datetime_json(obj, detail); std::string data = this->datetime_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1178,7 +1178,7 @@ void WebServer::handle_text_request(AsyncWebServerRequest *request, const UrlMat
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->text_json(obj, obj->state, detail); std::string data = this->text_json(obj, obj->state, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1244,7 +1244,7 @@ void WebServer::handle_select_request(AsyncWebServerRequest *request, const UrlM
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->select_json(obj, obj->state, detail); std::string data = this->select_json(obj, obj->state, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1308,7 +1308,7 @@ void WebServer::handle_climate_request(AsyncWebServerRequest *request, const Url
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->climate_json(obj, detail); std::string data = this->climate_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1472,7 +1472,7 @@ void WebServer::handle_lock_request(AsyncWebServerRequest *request, const UrlMat
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->lock_json(obj, obj->state, detail); std::string data = this->lock_json(obj, obj->state, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
} else if (match.method == "lock") { } else if (match.method == "lock") {
@@ -1525,7 +1525,7 @@ void WebServer::handle_valve_request(AsyncWebServerRequest *request, const UrlMa
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->valve_json(obj, detail); std::string data = this->valve_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1602,7 +1602,7 @@ void WebServer::handle_alarm_control_panel_request(AsyncWebServerRequest *reques
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->alarm_control_panel_json(obj, obj->get_state(), detail); std::string data = this->alarm_control_panel_json(obj, obj->get_state(), detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1674,7 +1674,7 @@ void WebServer::handle_event_request(AsyncWebServerRequest *request, const UrlMa
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->event_json(obj, "", detail); std::string data = this->event_json(obj, "", detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;
@@ -1725,7 +1725,7 @@ void WebServer::handle_update_request(AsyncWebServerRequest *request, const UrlM
continue; continue;
if (request->method() == HTTP_GET && match.method.empty()) { if (request->method() == HTTP_GET && match.method.empty()) {
auto detail = get_request_detail_(request); auto detail = get_request_detail(request);
std::string data = this->update_json(obj, detail); std::string data = this->update_json(obj, detail);
request->send(200, "application/json", data.c_str()); request->send(200, "application/json", data.c_str());
return; return;