JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
web_routes.h
См. документацию.
1#pragma once
2
3#include <WebServer.h>
4#include "../src/wifi_manager.h"
5#include "jxct_strings.h"
6#include "logger.h"
7
8// Внешние зависимости
9extern WebServer webServer;
10
11// ============================================================================
12// CSRF ЗАЩИТА - БЕЗОПАСНАЯ РЕАЛИЗАЦИЯ
13// ============================================================================
14
19String generateCSRFToken();
20
26bool validateCSRFToken(const String& token);
27
32String getCSRFHiddenField();
33
38bool checkCSRFSafety();
39
44
50String methodToString(HTTPMethod method);
51
52// ============================================================================
53// ОСНОВНЫЕ МАРШРУТЫ (routes_main.cpp)
54// ============================================================================
55
59void setupMainRoutes();
60
64void handleRoot();
65
69void handleStatus();
70
71// ============================================================================
72// КОНФИГУРАЦИОННЫЕ МАРШРУТЫ (routes_config.cpp)
73// ============================================================================
74
79
84
89
94
99
100// ============================================================================
101// СЕРВИСНЫЕ МАРШРУТЫ (routes_service.cpp)
102// ============================================================================
103
107void setupServiceRoutes();
108
113
118
123
124// ============================================================================
125// МАРШРУТЫ ДАННЫХ (routes_data.cpp)
126// ============================================================================
127
131void setupDataRoutes();
132
136void sendSensorJson();
137
142
147
148// ============================================================================
149// ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ДЛЯ MIDDLEWARE
150// ============================================================================
151
157bool isRouteAvailable(const String& uri);
158
163bool isFeatureAvailable();
164
171inline void logWebRequest(const String& method, const String& uri, const String& clientIP)
172{
173 // Логирование только важных запросов, исключаем служебные
174 if (uri.startsWith("/sensor_json") || uri.startsWith(API_SENSOR))
175 {
176 // API запросы логируем на уровне DEBUG
177 logDebugSafe("\1", method.c_str(), uri.c_str(), clientIP.c_str());
178 }
179 else
180 {
181 // Обычные запросы на уровне INFO
182 logInfoSafe("\1", method.c_str(), uri.c_str(), clientIP.c_str());
183 }
184}
185
186// ============================================================================
187// ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ ШАБЛОНОВ
188// ============================================================================
189
193String generateForm(const String& action, const String& method, const String& formContent, const String& buttonText,
194 const String& buttonIcon);
195
199String generateConfigSection(const String& title, const String& content, const String& helpText = "");
200
204String generateInputField(const String& id, const String& name, const String& label, const String& value,
205 const String& type = "text", bool required = false, const String& placeholder = "");
206
210String generateCheckboxField(const String& id, const String& name, const String& label, bool checked);
211
215String generateNumberField(const String& id, const String& name, const String& label, int value, int min, int max,
216 int step = 1);
217
221String generateFormError(const String& message);
222
223// ============================================================================
224// ОБРАБОТКА ОШИБОК (error_handlers.cpp)
225// ============================================================================
226
230void setupErrorHandlers();
231
237bool validateConfigInput(bool checkRequired = true);
238
243void handleUploadError(const String& error);
244
245// ============================================================================
246// HTML ШАБЛОНЫ (web_templates.cpp)
247// ============================================================================
248
255String generatePageHeader(const String& title, const String& icon = "");
256
261String generatePageFooter();
262
269String generateErrorPage(int errorCode, const String& errorMessage);
270
279String generateSuccessPage(const String& title, const String& message, const String& redirectUrl = "",
280 int redirectDelay = 2);
281
289String generateBasePage(const String& title, const String& content, const String& icon = "");
290
291// ============================================================================
292// ОБРАБОТКА ОШИБОК (error_handlers.cpp)
293// ============================================================================
294
298String generateValidationErrorResponse(const String& errorMsg);
299
303void handleCriticalError(const String& error);
304
305// ============================================================================
306// ДОПОЛНИТЕЛЬНЫЕ ФУНКЦИИ ШАБЛОНОВ
307// ============================================================================
308
312String generateApModeUnavailablePage(const String& title, const String& icon);
313
314// ============================================================================
315// ДОПОЛНИТЕЛЬНЫЕ МАРШРУТЫ
316// ============================================================================
317
321void setupOtaRoutes();
322
326void setupReportsRoutes();
#define API_SENSOR
Definition jxct_strings.h:8
Система логгирования с красивым форматированием
void logInfoSafe(const char *format, Args &&... args)
Definition logger.h:112
void logDebugSafe(const char *format, Args &&... args)
Definition logger.h:118
bool checkCSRFSafety()
Middleware для проверки CSRF на POST запросах
Definition csrf_protection.cpp:104
String generateBasePage(const String &title, const String &content, const String &icon="")
Генерация базовой HTML структуры с навигацией
Definition web_templates.cpp:360
void setupConfigRoutes()
Настройка маршрутов для конфигурации
Definition routes_config.cpp:88
String generateErrorPage(int errorCode, const String &errorMessage)
Генерация страницы ошибки
Definition web_templates.cpp:367
void setupReportsRoutes()
Настройка маршрутов отчетов
Definition routes_reports.cpp:396
bool isRouteAvailable(const String &uri)
Проверка доступности маршрута в текущем режиме
Definition error_handlers.cpp:266
void logWebRequest(const String &method, const String &uri, const String &clientIP)
Логирование веб-запросов
Definition web_routes.h:171
String generateApModeUnavailablePage(const String &title, const String &icon)
Генерация страницы "Недоступно в AP режиме".
Definition web_templates.cpp:396
void handleStatus()
Обработчик страницы статуса (уже существует в wifi_manager.cpp)
Definition wifi_manager.cpp:391
void handleCriticalError(const String &error)
Обработка критических ошибок сервера
Definition error_handlers.cpp:251
void handleReset()
Обработчик сброса системы
void handleAdvanced()
Обработчик страницы сложных настроек (лог, алгоритм, временная зона)
void setupServiceRoutes()
Настройка сервисных маршрутов (/reset, /status, /info)
Definition routes_service.cpp:41
void handleReadingsUpload()
Обработчик загрузки калибровочных файлов
Definition routes_data.cpp:149
void sendSensorJson()
Отправка JSON данных датчиков
Definition routes_data.cpp:213
WebServer webServer
void handleIntervals()
Обработчик страницы настроек интервалов
void setupMainRoutes()
Настройка основных маршрутов (/, /save, /status)
Definition routes_main.cpp:9
String generateConfigSection(const String &title, const String &content, const String &helpText="")
Генерация секции конфигурации
String generateValidationErrorResponse(const String &errorMsg)
Генерация HTML ответа с ошибкой валидации
Definition error_handlers.cpp:233
void handleUploadError(const String &error)
Обработка ошибок загрузки файлов
void handleApiConfigImport()
Обработчик API импорта конфигурации
void setupErrorHandlers()
Настройка обработчиков ошибок (404, 500, и т.д.)
Definition error_handlers.cpp:107
void handleRoot()
Обработчик главной страницы (уже существует в wifi_manager.cpp)
Definition routes_main.cpp:179
String generateNumberField(const String &id, const String &name, const String &label, int value, int min, int max, int step=1)
Генерация числового поля с валидацией
void handleReadings()
Обработчик главной страницы показаний
bool validateCSRFToken(const String &token)
Проверка CSRF токена
Definition csrf_protection.cpp:60
String generateInputField(const String &id, const String &name, const String &label, const String &value, const String &type="text", bool required=false, const String &placeholder="")
Генерация поля ввода
String getCSRFHiddenField()
Получение скрытого поля с CSRF токеном для форм
Definition csrf_protection.cpp:93
String generateCSRFToken()
Генерация CSRF токена
Definition csrf_protection.cpp:31
void initCSRFProtection()
Инициализация CSRF защиты
Definition csrf_protection.cpp:172
void handleUpdateStatus()
Обработчик обновления статуса
String generateSuccessPage(const String &title, const String &message, const String &redirectUrl="", int redirectDelay=2)
Генерация страницы успеха
Definition web_templates.cpp:378
String generatePageHeader(const String &title, const String &icon="")
Генерация заголовка HTML страницы
Definition web_templates.cpp:347
String generatePageFooter()
Генерация футера HTML страницы
Definition web_templates.cpp:355
String generateForm(const String &action, const String &method, const String &formContent, const String &buttonText, const String &buttonIcon)
Генерация формы с общими элементами
bool validateConfigInput(bool checkRequired=true)
Валидация входных данных конфигурации
Definition error_handlers.cpp:129
void handleInfo()
Обработчик информации о системе
String methodToString(HTTPMethod method)
Преобразование HTTP метода в строку
Definition csrf_protection.cpp:145
void handleApiConfigExport()
Обработчик API экспорта конфигурации
void setupOtaRoutes()
Настройка маршрутов OTA обновлений
Definition routes_ota.cpp:30
String generateCheckboxField(const String &id, const String &name, const String &label, bool checked)
Генерация поля чекбокса
void setupDataRoutes()
Настройка маршрутов для данных датчиков
Definition routes_data.cpp:434
bool isFeatureAvailable()
Проверка доступности функции в текущем режиме WiFi (без параметров)
Definition error_handlers.cpp:223
String generateFormError(const String &message)
Генерация сообщения об ошибке в форме