Files
OpenDTU/include/WebApi.h

74 lines
2.4 KiB
C
Raw Normal View History

// SPDX-License-Identifier: GPL-2.0-or-later
2022-04-11 19:44:51 +02:00
#pragma once
#include "WebApi_device.h"
#include "WebApi_devinfo.h"
2022-06-15 23:46:22 +02:00
#include "WebApi_dtu.h"
#include "WebApi_errors.h"
2022-07-06 22:17:26 +02:00
#include "WebApi_eventlog.h"
2024-10-19 11:07:15 +02:00
#include "WebApi_file.h"
2022-06-15 23:46:22 +02:00
#include "WebApi_firmware.h"
#include "WebApi_gridprofile.h"
#include "WebApi_i18n.h"
2022-06-15 23:46:22 +02:00
#include "WebApi_inverter.h"
#include "WebApi_limit.h"
2022-11-21 23:28:53 +01:00
#include "WebApi_maintenance.h"
2022-06-15 23:46:22 +02:00
#include "WebApi_mqtt.h"
#include "WebApi_network.h"
#include "WebApi_ntp.h"
2022-10-04 18:07:29 +02:00
#include "WebApi_power.h"
2022-10-27 10:38:52 +02:00
#include "WebApi_prometheus.h"
#include "WebApi_security.h"
2022-06-15 23:46:22 +02:00
#include "WebApi_sysstatus.h"
#include "WebApi_webapp.h"
2022-12-19 21:03:09 +01:00
#include "WebApi_ws_console.h"
#include "WebApi_ws_live.h"
#include <AsyncJson.h>
2022-04-11 19:44:51 +02:00
#include <ESPAsyncWebServer.h>
2023-11-20 22:07:07 +01:00
#include <TaskSchedulerDeclarations.h>
2022-04-11 19:44:51 +02:00
class WebApiClass {
public:
WebApiClass();
void init(Scheduler& scheduler);
void reload();
2022-04-11 19:44:51 +02:00
static bool checkCredentials(AsyncWebServerRequest* request);
static bool checkCredentialsReadonly(AsyncWebServerRequest* request);
static void sendTooManyRequests(AsyncWebServerRequest* request);
static void writeConfig(JsonVariant& retMsg, const WebApiError code = WebApiError::GenericSuccess, const String& message = "Settings saved!");
2024-04-02 23:23:12 +02:00
static bool parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, JsonDocument& json_document);
static uint64_t parseSerialFromRequest(AsyncWebServerRequest* request, String param_name = "inv");
static bool sendJsonResponse(AsyncWebServerRequest* request, AsyncJsonResponse* response, const char* function, const uint16_t line);
2022-04-11 19:44:51 +02:00
private:
AsyncWebServer _server;
WebApiDeviceClass _webApiDevice;
WebApiDevInfoClass _webApiDevInfo;
2022-06-15 23:46:22 +02:00
WebApiDtuClass _webApiDtu;
2022-07-06 22:17:26 +02:00
WebApiEventlogClass _webApiEventlog;
2024-10-19 11:07:15 +02:00
WebApiFileClass _webApiFile;
2022-06-15 23:46:22 +02:00
WebApiFirmwareClass _webApiFirmware;
WebApiGridProfileClass _webApiGridprofile;
WebApiI18nClass _webApiI18n;
2022-06-15 23:46:22 +02:00
WebApiInverterClass _webApiInverter;
WebApiLimitClass _webApiLimit;
2022-11-21 23:28:53 +01:00
WebApiMaintenanceClass _webApiMaintenance;
2022-06-15 23:46:22 +02:00
WebApiMqttClass _webApiMqtt;
WebApiNetworkClass _webApiNetwork;
WebApiNtpClass _webApiNtp;
2022-10-04 18:07:29 +02:00
WebApiPowerClass _webApiPower;
2022-10-27 10:38:52 +02:00
WebApiPrometheusClass _webApiPrometheus;
WebApiSecurityClass _webApiSecurity;
2022-06-15 23:46:22 +02:00
WebApiSysstatusClass _webApiSysstatus;
WebApiWebappClass _webApiWebapp;
2022-12-19 21:03:09 +01:00
WebApiWsConsoleClass _webApiWsConsole;
WebApiWsLiveClass _webApiWsLive;
2022-04-11 19:44:51 +02:00
};
extern WebApiClass WebApi;