mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
Avoid blank page (NULL) as response
This commit is contained in:
@@ -101,8 +101,15 @@ void WebAPIService::parse(AsyncWebServerRequest * request, JsonObject & input) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// output json buffer
|
// output json buffer
|
||||||
auto * response = new PrettyAsyncJsonResponse(false, EMSESP_JSON_SIZE_XXLARGE_DYN);
|
auto * response = new PrettyAsyncJsonResponse(false, EMSESP_JSON_SIZE_XXLARGE_DYN);
|
||||||
JsonObject output = response->getRoot();
|
if (!response->getSize()) {
|
||||||
|
response = new PrettyAsyncJsonResponse(false, 256);
|
||||||
|
response->setCode(507);
|
||||||
|
response->setLength();
|
||||||
|
request->send(response); // Insufficient Storage
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
JsonObject output = response->getRoot();
|
||||||
|
|
||||||
// call command
|
// call command
|
||||||
uint8_t return_code = Command::process(request->url().c_str(), is_admin, input, output);
|
uint8_t return_code = Command::process(request->url().c_str(), is_admin, input, output);
|
||||||
|
|||||||
@@ -201,6 +201,13 @@ void WebCustomizationService::devices(AsyncWebServerRequest * request) {
|
|||||||
void WebCustomizationService::device_entities(AsyncWebServerRequest * request, JsonVariant & json) {
|
void WebCustomizationService::device_entities(AsyncWebServerRequest * request, JsonVariant & json) {
|
||||||
if (json.is<JsonObject>()) {
|
if (json.is<JsonObject>()) {
|
||||||
auto * response = new MsgpackAsyncJsonResponse(true, EMSESP_JSON_SIZE_XXXLARGE_DYN);
|
auto * response = new MsgpackAsyncJsonResponse(true, EMSESP_JSON_SIZE_XXXLARGE_DYN);
|
||||||
|
if (!response->getSize()) {
|
||||||
|
response = new MsgpackAsyncJsonResponse(true, 256);
|
||||||
|
response->setCode(507);
|
||||||
|
response->setLength();
|
||||||
|
request->send(response); // Insufficient Storage
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (const auto & emsdevice : EMSESP::emsdevices) {
|
for (const auto & emsdevice : EMSESP::emsdevices) {
|
||||||
if (emsdevice->unique_id() == json["id"]) {
|
if (emsdevice->unique_id() == json["id"]) {
|
||||||
#ifndef EMSESP_STANDALONE
|
#ifndef EMSESP_STANDALONE
|
||||||
|
|||||||
@@ -166,6 +166,14 @@ void WebDataService::sensor_data(AsyncWebServerRequest * request) {
|
|||||||
void WebDataService::device_data(AsyncWebServerRequest * request, JsonVariant & json) {
|
void WebDataService::device_data(AsyncWebServerRequest * request, JsonVariant & json) {
|
||||||
if (json.is<JsonObject>()) {
|
if (json.is<JsonObject>()) {
|
||||||
auto * response = new MsgpackAsyncJsonResponse(false, EMSESP_JSON_SIZE_XXXLARGE_DYN);
|
auto * response = new MsgpackAsyncJsonResponse(false, EMSESP_JSON_SIZE_XXXLARGE_DYN);
|
||||||
|
if (!response->getSize()) {
|
||||||
|
// EMSESP::logger().err("Insufficient storage");
|
||||||
|
response = new MsgpackAsyncJsonResponse(false, 256);
|
||||||
|
response->setCode(507);
|
||||||
|
response->setLength();
|
||||||
|
request->send(response); // Insufficient Storage (507)
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (const auto & emsdevice : EMSESP::emsdevices) {
|
for (const auto & emsdevice : EMSESP::emsdevices) {
|
||||||
if (emsdevice->unique_id() == json["id"]) {
|
if (emsdevice->unique_id() == json["id"]) {
|
||||||
// wait max 2.5 sec for updated data (post_send_delay is 2 sec)
|
// wait max 2.5 sec for updated data (post_send_delay is 2 sec)
|
||||||
|
|||||||
Reference in New Issue
Block a user