#pragma once #include #include #include #include "settings.h" class ImmichClient; class PowerManager; class WiFiManager; class AppWebServer { public: void begin(SettingsManager& settings, ImmichClient& immich, PowerManager& power, WiFiManager& wifi); void setActionCallback(std::function cb); bool isOTAInProgress(); private: AsyncWebServer _server{80}; SettingsManager* _settings = nullptr; ImmichClient* _immich = nullptr; PowerManager* _power = nullptr; WiFiManager* _wifi = nullptr; std::function _actionCb; bool _otaInProgress = false; void setupCaptivePortal(); void setupAPIRoutes(); void setupStaticFiles(); void setupOTA(); void handleGetStatus(AsyncWebServerRequest* request); void handleGetAlbums(AsyncWebServerRequest* request); void handlePostAlbumsSelect(AsyncWebServerRequest* request, uint8_t* data, size_t len); void handleGetSettings(AsyncWebServerRequest* request); void handlePostSettings(AsyncWebServerRequest* request, uint8_t* data, size_t len); void handlePostAction(AsyncWebServerRequest* request); void handlePostSetup(AsyncWebServerRequest* request, uint8_t* data, size_t len); };