mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
fix web log
This commit is contained in:
@@ -22,10 +22,8 @@ namespace emsesp {
|
|||||||
|
|
||||||
WebLogService::WebLogService(AsyncWebServer * server, SecurityManager * securityManager)
|
WebLogService::WebLogService(AsyncWebServer * server, SecurityManager * securityManager)
|
||||||
: events_(EVENT_SOURCE_LOG_PATH) {
|
: events_(EVENT_SOURCE_LOG_PATH) {
|
||||||
// set settings
|
// get & set settings
|
||||||
server->on(LOG_SETTINGS_PATH, [this](AsyncWebServerRequest * request, JsonVariant json) { setValues(request, json); });
|
server->on(LOG_SETTINGS_PATH, [this](AsyncWebServerRequest * request, JsonVariant json) { getSetValues(request, json); });
|
||||||
// get settings
|
|
||||||
server->on(LOG_SETTINGS_PATH, HTTP_GET, [this](AsyncWebServerRequest * request) { getValues(request); });
|
|
||||||
|
|
||||||
// for bring back the whole log - is a command, hence a POST
|
// for bring back the whole log - is a command, hence a POST
|
||||||
server->on(FETCH_LOG_PATH, HTTP_POST, [this](AsyncWebServerRequest * request) { fetchLog(request); });
|
server->on(FETCH_LOG_PATH, HTTP_POST, [this](AsyncWebServerRequest * request) { fetchLog(request); });
|
||||||
@@ -203,11 +201,20 @@ void WebLogService::fetchLog(AsyncWebServerRequest * request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// sets the values like level after a POST
|
// sets the values like level after a POST
|
||||||
void WebLogService::setValues(AsyncWebServerRequest * request, JsonVariant json) {
|
void WebLogService::getSetValues(AsyncWebServerRequest * request, JsonVariant json) {
|
||||||
if (!json.is<JsonObject>()) {
|
if ((request->method() == HTTP_GET) || (!json.is<JsonObject>())) {
|
||||||
|
// GET - return the values
|
||||||
|
auto * response = new AsyncJsonResponse(false);
|
||||||
|
JsonObject root = response->getRoot();
|
||||||
|
root["level"] = log_level();
|
||||||
|
root["max_messages"] = maximum_log_messages();
|
||||||
|
root["compact"] = compact();
|
||||||
|
response->setLength();
|
||||||
|
request->send(response);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// POST - write the settings
|
||||||
auto && body = json.as<JsonObject>();
|
auto && body = json.as<JsonObject>();
|
||||||
|
|
||||||
uuid::log::Level level = body["level"];
|
uuid::log::Level level = body["level"];
|
||||||
@@ -222,15 +229,4 @@ void WebLogService::setValues(AsyncWebServerRequest * request, JsonVariant json)
|
|||||||
request->send(200); // OK
|
request->send(200); // OK
|
||||||
}
|
}
|
||||||
|
|
||||||
// return the current value settings after a GET
|
|
||||||
void WebLogService::getValues(AsyncWebServerRequest * request) {
|
|
||||||
auto * response = new AsyncJsonResponse(false);
|
|
||||||
JsonObject root = response->getRoot();
|
|
||||||
root["level"] = log_level();
|
|
||||||
root["max_messages"] = maximum_log_messages();
|
|
||||||
root["compact"] = compact();
|
|
||||||
response->setLength();
|
|
||||||
request->send(response);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace emsesp
|
} // namespace emsesp
|
||||||
@@ -60,12 +60,10 @@ class WebLogService : public uuid::log::Handler {
|
|||||||
|
|
||||||
void transmit(const QueuedLogMessage & message);
|
void transmit(const QueuedLogMessage & message);
|
||||||
void fetchLog(AsyncWebServerRequest * request);
|
void fetchLog(AsyncWebServerRequest * request);
|
||||||
void getValues(AsyncWebServerRequest * request);
|
void getSetValues(AsyncWebServerRequest * request, JsonVariant json);
|
||||||
|
|
||||||
char * messagetime(char * out, const uint64_t t, const size_t bufsize);
|
char * messagetime(char * out, const uint64_t t, const size_t bufsize);
|
||||||
|
|
||||||
void setValues(AsyncWebServerRequest * request, JsonVariant json);
|
|
||||||
|
|
||||||
uint64_t last_transmit_ = 0; // Last transmit time
|
uint64_t last_transmit_ = 0; // Last transmit time
|
||||||
size_t maximum_log_messages_ = MAX_LOG_MESSAGES; // Maximum number of log messages to buffer before they are output
|
size_t maximum_log_messages_ = MAX_LOG_MESSAGES; // Maximum number of log messages to buffer before they are output
|
||||||
size_t limit_log_messages_ = 1; // dynamic limit
|
size_t limit_log_messages_ = 1; // dynamic limit
|
||||||
|
|||||||
Reference in New Issue
Block a user