#include "responses.h" #include #include #include "AsyncJson.h" #include #include #include "json_builder.h" #include "../tools/tools.h" #include extern WaterData water_data; extern DeviceTelemetry telemetry; extern NetworkData wifi_data; extern NetworkData ethernet_data; extern SensorData shunt_data; extern OTAStatus ota_status; extern AsyncWebServer server; void setup_api_endpoints(){ server.on("/sensor_data", HTTP_GET, [](AsyncWebServerRequest* request) { String output; serializeJson(build_shunt_data_json(shunt_data), output); request->send(200, "application/json", output); }); server.on("/water_data", HTTP_GET, [](AsyncWebServerRequest* request) { String output; serializeJson(build_water_data_json(water_data), output); request->send(200, "application/json", output); }); server.on("/raw_percent", HTTP_GET, [](AsyncWebServerRequest* request) { String output; output = water_data.percentage; request->send(200, "text/raw", output); }); server.on("/raw_level", HTTP_GET, [](AsyncWebServerRequest* request) { String output; output = water_data.level; request->send(200, "text/raw", output); }); server.on("/telemetry", HTTP_GET, [](AsyncWebServerRequest* request) { String output; serializeJson(build_telemetry_json(telemetry), output); request->send(200, "application/json", output); }); server.on("/network_info", HTTP_GET, [](AsyncWebServerRequest* request) { String output; serializeJson(build_network_json(ethernet_data, wifi_data), output); request->send(200, "application/json", output); }); server.on("/ota_udpate_status", HTTP_GET, [](AsyncWebServerRequest* request) { String output; serializeJson(build_ota_json(ota_status), output); request->send(200, "application/json", output); }); server.on("/run_ota_update", HTTP_GET, [](AsyncWebServerRequest* request) { if (ota_status.update_progress > -1) { request->send(200, "text/plain", "OTA Update already in progress"); return; } else if (!ota_status.update_available) { request->send(200, "text/plain", "No update available"); return; } static TaskArgs_t args = { .ota_status = ota_status }; xTaskCreate(run_ota_update_task, "RunOTAUpdate", 1024 * 8, (void *)&args, 1, NULL); request->send(LittleFS, "/update_progress.html", "text/html", false, processor); }); }