diff --git a/include/WebApi.h b/include/WebApi.h index 2932f015..2e530587 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -1,12 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include "WebApi_config.h" #include "WebApi_device.h" #include "WebApi_devinfo.h" #include "WebApi_dtu.h" #include "WebApi_errors.h" #include "WebApi_eventlog.h" +#include "WebApi_file.h" #include "WebApi_firmware.h" #include "WebApi_gridprofile.h" #include "WebApi_inverter.h" @@ -46,11 +46,11 @@ public: private: AsyncWebServer _server; - WebApiConfigClass _webApiConfig; WebApiDeviceClass _webApiDevice; WebApiDevInfoClass _webApiDevInfo; WebApiDtuClass _webApiDtu; WebApiEventlogClass _webApiEventlog; + WebApiFileClass _webApiFile; WebApiFirmwareClass _webApiFirmware; WebApiGridProfileClass _webApiGridprofile; WebApiInverterClass _webApiInverter; diff --git a/include/WebApi_config.h b/include/WebApi_config.h deleted file mode 100644 index f29dc8fc..00000000 --- a/include/WebApi_config.h +++ /dev/null @@ -1,17 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include -#include - -class WebApiConfigClass { -public: - void init(AsyncWebServer& server, Scheduler& scheduler); - -private: - void onConfigGet(AsyncWebServerRequest* request); - void onConfigDelete(AsyncWebServerRequest* request); - void onConfigListGet(AsyncWebServerRequest* request); - void onConfigUploadFinish(AsyncWebServerRequest* request); - void onConfigUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final); -}; diff --git a/include/WebApi_file.h b/include/WebApi_file.h new file mode 100644 index 00000000..2f6e3313 --- /dev/null +++ b/include/WebApi_file.h @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include +#include + +class WebApiFileClass { +public: + void init(AsyncWebServer& server, Scheduler& scheduler); + +private: + void onFileGet(AsyncWebServerRequest* request); + void onFileDelete(AsyncWebServerRequest* request); + void onFileListGet(AsyncWebServerRequest* request); + void onFileUploadFinish(AsyncWebServerRequest* request); + void onFileUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final); +}; diff --git a/src/WebApi.cpp b/src/WebApi.cpp index b3255c41..35b1fda9 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -15,11 +15,11 @@ WebApiClass::WebApiClass() void WebApiClass::init(Scheduler& scheduler) { - _webApiConfig.init(_server, scheduler); _webApiDevice.init(_server, scheduler); _webApiDevInfo.init(_server, scheduler); _webApiDtu.init(_server, scheduler); _webApiEventlog.init(_server, scheduler); + _webApiFile.init(_server, scheduler); _webApiFirmware.init(_server, scheduler); _webApiGridprofile.init(_server, scheduler); _webApiInverter.init(_server, scheduler); diff --git a/src/WebApi_config.cpp b/src/WebApi_file.cpp similarity index 78% rename from src/WebApi_config.cpp rename to src/WebApi_file.cpp index 51a7aab1..c3a290a1 100644 --- a/src/WebApi_config.cpp +++ b/src/WebApi_file.cpp @@ -2,7 +2,7 @@ /* * Copyright (C) 2022-2024 Thomas Basler and others */ -#include "WebApi_config.h" +#include "WebApi_file.h" #include "Configuration.h" #include "RestartHelper.h" #include "Utils.h" @@ -11,7 +11,7 @@ #include #include -void WebApiConfigClass::init(AsyncWebServer& server, Scheduler& scheduler) +void WebApiFileClass::init(AsyncWebServer& server, Scheduler& scheduler) { using std::placeholders::_1; using std::placeholders::_2; @@ -20,15 +20,15 @@ void WebApiConfigClass::init(AsyncWebServer& server, Scheduler& scheduler) using std::placeholders::_5; using std::placeholders::_6; - server.on("/api/config/get", HTTP_GET, std::bind(&WebApiConfigClass::onConfigGet, this, _1)); - server.on("/api/config/delete", HTTP_POST, std::bind(&WebApiConfigClass::onConfigDelete, this, _1)); - server.on("/api/config/list", HTTP_GET, std::bind(&WebApiConfigClass::onConfigListGet, this, _1)); - server.on("/api/config/upload", HTTP_POST, - std::bind(&WebApiConfigClass::onConfigUploadFinish, this, _1), - std::bind(&WebApiConfigClass::onConfigUpload, this, _1, _2, _3, _4, _5, _6)); + server.on("/api/file/get", HTTP_GET, std::bind(&WebApiFileClass::onFileGet, this, _1)); + server.on("/api/file/delete", HTTP_POST, std::bind(&WebApiFileClass::onFileDelete, this, _1)); + server.on("/api/file/list", HTTP_GET, std::bind(&WebApiFileClass::onFileListGet, this, _1)); + server.on("/api/file/upload", HTTP_POST, + std::bind(&WebApiFileClass::onFileUploadFinish, this, _1), + std::bind(&WebApiFileClass::onFileUpload, this, _1, _2, _3, _4, _5, _6)); } -void WebApiConfigClass::onConfigGet(AsyncWebServerRequest* request) +void WebApiFileClass::onFileGet(AsyncWebServerRequest* request) { if (!WebApi.checkCredentials(request)) { return; @@ -48,7 +48,7 @@ void WebApiConfigClass::onConfigGet(AsyncWebServerRequest* request) request->send(LittleFS, requestFile, String(), true); } -void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) +void WebApiFileClass::onFileDelete(AsyncWebServerRequest* request) { if (!WebApi.checkCredentials(request)) { return; @@ -86,7 +86,7 @@ void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) RestartHelper.triggerRestart(); } -void WebApiConfigClass::onConfigListGet(AsyncWebServerRequest* request) +void WebApiFileClass::onFileListGet(AsyncWebServerRequest* request) { if (!WebApi.checkCredentials(request)) { return; @@ -112,7 +112,7 @@ void WebApiConfigClass::onConfigListGet(AsyncWebServerRequest* request) WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } -void WebApiConfigClass::onConfigUploadFinish(AsyncWebServerRequest* request) +void WebApiFileClass::onFileUploadFinish(AsyncWebServerRequest* request) { if (!WebApi.checkCredentials(request)) { return; @@ -128,7 +128,7 @@ void WebApiConfigClass::onConfigUploadFinish(AsyncWebServerRequest* request) RestartHelper.triggerRestart(); } -void WebApiConfigClass::onConfigUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final) +void WebApiFileClass::onFileUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final) { if (!WebApi.checkCredentials(request)) { return; diff --git a/webapp/src/views/ConfigAdminView.vue b/webapp/src/views/ConfigAdminView.vue index a5bf2f7d..6005db01 100644 --- a/webapp/src/views/ConfigAdminView.vue +++ b/webapp/src/views/ConfigAdminView.vue @@ -163,7 +163,7 @@ export default defineComponent({ const formData = new FormData(); formData.append('data', JSON.stringify({ delete: true })); - fetch('/api/config/delete', { + fetch('/api/file/delete', { method: 'POST', headers: authHeader(), body: formData, @@ -178,7 +178,7 @@ export default defineComponent({ }, getFileList() { this.loading = true; - fetch('/api/config/list', { headers: authHeader() }) + fetch('/api/file/list', { headers: authHeader() }) .then((response) => handleResponse(response, this.$emitter, this.$router)) .then((data) => { this.fileList = data; @@ -189,7 +189,7 @@ export default defineComponent({ }); }, downloadConfig() { - fetch('/api/config/get?file=' + this.backupFileSelect, { headers: authHeader() }) + fetch('/api/file/get?file=' + this.backupFileSelect, { headers: authHeader() }) .then((res) => res.blob()) .then((blob) => { const file = window.URL.createObjectURL(blob); @@ -233,7 +233,7 @@ export default defineComponent({ request.withCredentials = true; formData.append('config', this.file, 'config'); - request.open('post', '/api/config/upload?file=' + this.restoreFileSelect); + request.open('post', '/api/file/upload?file=' + this.restoreFileSelect); authHeader().forEach((value, key) => { request.setRequestHeader(key, value); }); diff --git a/webapp/src/views/DeviceAdminView.vue b/webapp/src/views/DeviceAdminView.vue index 258ec5b2..df374151 100644 --- a/webapp/src/views/DeviceAdminView.vue +++ b/webapp/src/views/DeviceAdminView.vue @@ -316,7 +316,7 @@ export default defineComponent({ methods: { getPinMappingList() { this.pinMappingLoading = true; - fetch('/api/config/get?file=pin_mapping.json', { headers: authHeader() }) + fetch('/api/file/get?file=pin_mapping.json', { headers: authHeader() }) .then((response) => handleResponse(response, this.$emitter, this.$router, true)) .then((data) => { this.pinMappingList = data;