Merge pull request #61 from rjwats/fix-formatting

fix formatting issue
This commit is contained in:
rjwats 2019-11-30 13:47:18 +00:00 committed by GitHub
commit 5fa6a1218f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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