diff --git a/lib/framework/SettingsService.h b/lib/framework/SettingsService.h index 7f40505..4681ff1 100644 --- a/lib/framework/SettingsService.h +++ b/lib/framework/SettingsService.h @@ -20,67 +20,61 @@ /* * Abstraction of a service which stores it's settings as JSON in a file system. */ -class SettingsService : public SettingsPersistence -{ +class SettingsService : public SettingsPersistence { -public: - SettingsService(AsyncWebServer *server, FS *fs, char const *servicePath, char const *filePath) : SettingsPersistence(fs, filePath), _servicePath(servicePath) - { - server->on(_servicePath, HTTP_GET, std::bind(&SettingsService::fetchConfig, this, std::placeholders::_1)); + public: - _updateHandler.setUri(servicePath); - _updateHandler.setMethod(HTTP_POST); - _updateHandler.setMaxContentLength(MAX_SETTINGS_SIZE); - _updateHandler.onRequest(std::bind(&SettingsService::updateConfig, this, std::placeholders::_1, std::placeholders::_2)); - server->addHandler(&_updateHandler); - } + SettingsService(AsyncWebServer* server, FS* fs, char const* servicePath, char const* filePath): SettingsPersistence(fs, filePath), _servicePath(servicePath) { + server->on(_servicePath, HTTP_GET, std::bind(&SettingsService::fetchConfig, this, std::placeholders::_1)); - virtual ~SettingsService() {} + _updateHandler.setUri(servicePath); + _updateHandler.setMethod(HTTP_POST); + _updateHandler.setMaxContentLength(MAX_SETTINGS_SIZE); + _updateHandler.onRequest(std::bind(&SettingsService::updateConfig, this, std::placeholders::_1, std::placeholders::_2)); + server->addHandler(&_updateHandler); + } - void begin() - { - // read the initial data from the file system - readFromFS(); - } + virtual ~SettingsService() {} + + void begin() { + // read the initial data from the file system + readFromFS(); + } protected: - char const *_servicePath; + char const* _servicePath; AsyncJsonWebHandler _updateHandler; - virtual void fetchConfig(AsyncWebServerRequest *request) - { + virtual void fetchConfig(AsyncWebServerRequest *request) { // handle the request - AsyncJsonResponse *response = new AsyncJsonResponse(false, MAX_SETTINGS_SIZE); - JsonObject jsonObject = response->getRoot(); + AsyncJsonResponse * response = new AsyncJsonResponse(false, MAX_SETTINGS_SIZE); + JsonObject jsonObject = response->getRoot(); writeToJsonObject(jsonObject); response->setLength(); request->send(response); } - virtual void updateConfig(AsyncWebServerRequest *request, JsonDocument &jsonDocument) - { + virtual void updateConfig(AsyncWebServerRequest *request, JsonDocument &jsonDocument) { // handle the request - if (jsonDocument.is()) - { + if (jsonDocument.is()){ JsonObject newConfig = jsonDocument.as(); readFromJsonObject(newConfig); writeToFS(); // write settings back with a callback to reconfigure the wifi - AsyncJsonCallbackResponse *response = new AsyncJsonCallbackResponse([this]() { onConfigUpdated(); }, false, MAX_SETTINGS_SIZE); - JsonObject jsonObject = response->getRoot(); + AsyncJsonCallbackResponse * response = new AsyncJsonCallbackResponse([this] () {onConfigUpdated();}, false, MAX_SETTINGS_SIZE); + JsonObject jsonObject = response->getRoot(); writeToJsonObject(jsonObject); response->setLength(); request->send(response); - } - else - { + } else { request->send(400); } } // implement to perform action when config has been updated - virtual void onConfigUpdated() {} + virtual void onConfigUpdated(){} + }; #endif // end SettingsService