From 1e333a0ffe1497fda14e3cf0867e2767b58b0c77 Mon Sep 17 00:00:00 2001 From: Niklas Jensen Date: Sun, 25 Jan 2026 19:34:46 +0100 Subject: [PATCH] Redo /api/system endpoints to proto --- esp32/include/communication/webserver.h | 1 + esp32/src/communication/webserver.cpp | 2 ++ esp32/src/main.cpp | 13 ++++++------- esp32/src/system_service.cpp | 6 +++--- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/esp32/include/communication/webserver.h b/esp32/include/communication/webserver.h index 1c9bbf5..2936bef 100644 --- a/esp32/include/communication/webserver.h +++ b/esp32/include/communication/webserver.h @@ -69,6 +69,7 @@ class WebServer { static esp_err_t sendJson(httpd_req_t* req, int status, JsonDocument& doc); static esp_err_t sendError(httpd_req_t* req, int status, const char* message); static esp_err_t sendOk(httpd_req_t* req); + static esp_err_t sendOkProto(httpd_req_t* req); static esp_err_t sendProto(httpd_req_t* req, int status, const uint8_t* data, size_t len); template diff --git a/esp32/src/communication/webserver.cpp b/esp32/src/communication/webserver.cpp index 62b0acc..fc0f903 100644 --- a/esp32/src/communication/webserver.cpp +++ b/esp32/src/communication/webserver.cpp @@ -359,6 +359,8 @@ esp_err_t WebServer::sendError(httpd_req_t* req, int status, const char* message esp_err_t WebServer::sendOk(httpd_req_t* req) { return sendJson(req, 200, "{\"status\":\"ok\"}"); } +esp_err_t WebServer::sendOkProto(httpd_req_t* req) { return sendProto(req, 200, nullptr, 0); } + esp_err_t WebServer::sendProto(httpd_req_t* req, int status, const uint8_t* data, size_t len) { httpd_resp_set_status(req, status == 200 ? "200 OK" : status == 400 ? "400 Bad Request" diff --git a/esp32/src/main.cpp b/esp32/src/main.cpp index 0a5eece..558d322 100644 --- a/esp32/src/main.cpp +++ b/esp32/src/main.cpp @@ -42,13 +42,12 @@ void setupServer() { server.config(50 + WWW_ASSETS_COUNT, 32768); server.listen(80); - // TODO: REMAKE TO PROTO - server.on("/api/system/reset", HTTP_POST, - [&](httpd_req_t *request, JsonVariant &json) { return system_service::handleReset(request); }); - server.on("/api/system/restart", HTTP_POST, - [&](httpd_req_t *request, JsonVariant &json) { return system_service::handleRestart(request); }); - server.on("/api/system/sleep", HTTP_POST, - [&](httpd_req_t *request, JsonVariant &json) { return system_service::handleSleep(request); }); + server.onProto("/api/system/reset", HTTP_POST, + [&](httpd_req_t *request, api_Request *protoReq) { return system_service::handleReset(request); }); + server.onProto("/api/system/restart", HTTP_POST, + [&](httpd_req_t *request, api_Request *protoReq) { return system_service::handleRestart(request); }); + server.onProto("/api/system/sleep", HTTP_POST, + [&](httpd_req_t *request, api_Request *protoReq) { return system_service::handleSleep(request); }); #if USE_CAMERA // TODO: REMAKE TO PROTO server.on("/api/camera/still", HTTP_GET, [&](httpd_req_t *request) { return cameraService.cameraStill(request); }); diff --git a/esp32/src/system_service.cpp b/esp32/src/system_service.cpp index af16000..6662999 100644 --- a/esp32/src/system_service.cpp +++ b/esp32/src/system_service.cpp @@ -7,17 +7,17 @@ static const char *TAG = "SystemService"; esp_err_t handleReset(httpd_req_t *request) { reset(); - return WebServer::sendOk(request); + return WebServer::sendOkProto(request); } esp_err_t handleRestart(httpd_req_t *request) { restart(); - return WebServer::sendOk(request); + return WebServer::sendOkProto(request); } esp_err_t handleSleep(httpd_req_t *request) { sleep(); - return WebServer::sendOk(request); + return WebServer::sendOkProto(request); } void reset() {