c16f7693fd
Make ESP8266 use LittleFS instead of deprecated SPIFFS Make framework use the correct filesystem automatically and handle the call the FS.begin() Change default MQTT keepalive to 60 seconds Fix lodash security issue
38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
#include <FactoryResetService.h>
|
|
|
|
using namespace std::placeholders;
|
|
|
|
FactoryResetService::FactoryResetService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager) : fs(fs) {
|
|
server->on(FACTORY_RESET_SERVICE_PATH,
|
|
HTTP_POST,
|
|
securityManager->wrapRequest(std::bind(&FactoryResetService::handleRequest, this, _1),
|
|
AuthenticationPredicates::IS_ADMIN));
|
|
}
|
|
|
|
void FactoryResetService::handleRequest(AsyncWebServerRequest* request) {
|
|
request->onDisconnect(std::bind(&FactoryResetService::factoryReset, this));
|
|
request->send(200);
|
|
}
|
|
|
|
/**
|
|
* Delete function assumes that all files are stored flat, within the config directory.
|
|
*/
|
|
void FactoryResetService::factoryReset() {
|
|
#ifdef ESP32
|
|
File root = fs->open(FS_CONFIG_DIRECTORY);
|
|
File file;
|
|
while (file = root.openNextFile()) {
|
|
fs->remove(file.name());
|
|
}
|
|
#elif defined(ESP8266)
|
|
Dir configDirectory = fs->openDir(FS_CONFIG_DIRECTORY);
|
|
while (configDirectory.next()) {
|
|
String path = FS_CONFIG_DIRECTORY;
|
|
path.concat("/");
|
|
path.concat(configDirectory.fileName());
|
|
fs->remove(path);
|
|
}
|
|
#endif
|
|
RestartService::restartNow();
|
|
}
|