41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
|
|
#pragma once
|
||
|
|
|
||
|
|
#include <Arduino.h>
|
||
|
|
#include <ESPAsyncWebServer.h>
|
||
|
|
#include <functional>
|
||
|
|
#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<void(const String& action)> cb);
|
||
|
|
bool isOTAInProgress();
|
||
|
|
|
||
|
|
private:
|
||
|
|
AsyncWebServer _server{80};
|
||
|
|
SettingsManager* _settings = nullptr;
|
||
|
|
ImmichClient* _immich = nullptr;
|
||
|
|
PowerManager* _power = nullptr;
|
||
|
|
WiFiManager* _wifi = nullptr;
|
||
|
|
std::function<void(const String& action)> _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);
|
||
|
|
};
|