Files
immich-frame/src/web_server.h

41 lines
1.3 KiB
C
Raw Normal View History

#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);
};