diff --git a/app/src/api/device.js b/app/src/api/device.js index f90785f..11b46e8 100644 --- a/app/src/api/device.js +++ b/app/src/api/device.js @@ -5,20 +5,19 @@ // eslint-disable-next-line const _settings = { device: { - orientation: 0, + angle: 0, theme: "black", }, playlist: { - interval: 60 + timer: 60 }, - credentials: { - + api: { + owm: "" }, cloud: { mode: "active", url: "http://", - token: "###", - user: "" + token: "###" } } @@ -34,7 +33,7 @@ export default { * @returns {PromiseLike | Promise} */ getSettings(cb) { - return cb(_settings); + //return cb(_settings); // eslint-disable-next-line return axios diff --git a/app/src/views/Settings.vue b/app/src/views/Settings.vue index 58bb349..caa70ae 100644 --- a/app/src/views/Settings.vue +++ b/app/src/views/Settings.vue @@ -23,6 +23,7 @@ @@ -31,7 +32,7 @@ @@ -53,7 +54,7 @@ @@ -111,15 +112,21 @@ v-model="settings.cloud.token" placeholder="########-####-####-####-############" > - - + + + + + + i8n:Save + + diff --git a/src/app.cpp b/src/app.cpp index e9d4c9c..ee1e117 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -81,11 +81,16 @@ void setupSettingsGet() AsyncResponseStream *response = request->beginResponseStream("application/json"); DynamicJsonDocument root(1024); - root["device_mode"] = NVS.getString("device_mode"); - root["device_rotation"] = 0; - root["cloud_server"] = NVS.getString("cloud_server"); - root["cloud_uuid"] = NVS.getString("cloud_uuid"); - root["cloud_user"] = NVS.getString("cloud_user"); + root["device"]["angle"] = NVS.getInt("device.angle"); + root["device"]["theme"] = NVS.getString("device.theme"); + + root["playlist"]["timer"] = NVS.getInt("playlist.timer"); + + root["api"]["owm"] = NVS.getString("api.owm"); + + root["cloud"]["mode"] = NVS.getString("cloud.mode"); + root["cloud"]["url"] = NVS.getString("cloud.url"); + root["cloud"]["token"] = NVS.getString("cloud.token"); serializeJson(root, *response); request->send(response); @@ -95,7 +100,7 @@ void setupSettingsGet() void setupSettingsPost() { server.on("/api/settings", HTTP_PUT, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) { - DynamicJsonDocument doc(1024); + DynamicJsonDocument doc(2048); DeserializationError error = deserializeJson(doc, data); if (error) { @@ -106,19 +111,18 @@ void setupSettingsPost() } else { - if (doc.containsKey("device_mode")) { - NVS.setString("device_mode", doc["device_mode"]); - } - if (doc.containsKey("cloud_server")) { - NVS.setString("cloud_server", doc["cloud_server"]); - //Serial.println(doc["cloud_server"].as()); - } - if (doc.containsKey("cloud_uuid")) { - NVS.setString("cloud_uuid", doc["cloud_uuid"]); - } - if (doc.containsKey("cloud_user")) { - NVS.setString("cloud_user", doc["cloud_user"]); - } + NVS.setInt("device.angle", doc["device"]["angle"].as()); + NVS.setString("device.theme", doc["device"]["theme"]); + + NVS.setInt("playlist.timer", doc["playlist"]["timer"].as()); + + NVS.setString("api.owm", doc["api"]["owm"]); + + NVS.setString("cloud.mode", doc["cloud"]["mode"]); + NVS.setString("cloud.url", doc["cloud"]["url"]); + NVS.setString("cloud.token", doc["cloud"]["token"]); + + NVS.commit(); request->send(200, "application/ld+json; charset=utf-8", "{}"); } }); diff --git a/src/cloud.cpp b/src/cloud.cpp index 8c74db7..1508bd7 100644 --- a/src/cloud.cpp +++ b/src/cloud.cpp @@ -76,7 +76,7 @@ void loopCloud() bool isCloudSetupComplete() { - return NVS.getString("cloud_server") != "" && NVS.getString("cloud_uuid") != ""; + return NVS.getString("cloud.url") != ""; // && NVS.getString("cloud_uuid") != ""; } /** @@ -106,7 +106,7 @@ void updateInterval(unsigned long interval) */ void requestCloud() { - String config_Url = NVS.getString("cloud_server"); + String config_Url = NVS.getString("cloud.url"); Serial.println(config_Url); http.begin(config_Url);