From 3b5ff1691ebe547e56b0eb53d8bb364e5cd8f120 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 23 Dec 2022 17:46:26 +0100 Subject: [PATCH] Introduce numeric error codes in dtu webapi --- include/WebApi_errors.h | 16 ++++++++++++++++ src/WebApi_dtu.cpp | 9 +++++++++ 2 files changed, 25 insertions(+) create mode 100644 include/WebApi_errors.h diff --git a/include/WebApi_errors.h b/include/WebApi_errors.h new file mode 100644 index 0000000..e5b854f --- /dev/null +++ b/include/WebApi_errors.h @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +enum WebApiError { + GenericBase = 1000, + GenericSuccess, + GenericNoValueFound, + GenericDataTooLarge, + GenericParseError, + GenericValueMissing, + + DtuBase = 2000, + DtuSerialZero, + DtuPollZero, + DtuInvalidPowerLevel, +}; \ No newline at end of file diff --git a/src/WebApi_dtu.cpp b/src/WebApi_dtu.cpp index 0ca2662..b53b1cf 100644 --- a/src/WebApi_dtu.cpp +++ b/src/WebApi_dtu.cpp @@ -5,6 +5,7 @@ #include "WebApi_dtu.h" #include "Configuration.h" #include "WebApi.h" +#include "WebApi_errors.h" #include #include @@ -57,6 +58,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) if (!request->hasParam("data", true)) { retMsg[F("message")] = F("No values found!"); + retMsg[F("code")] = WebApiError::GenericNoValueFound; response->setLength(); request->send(response); return; @@ -66,6 +68,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) if (json.length() > 1024) { retMsg[F("message")] = F("Data too large!"); + retMsg[F("code")] = WebApiError::GenericDataTooLarge; response->setLength(); request->send(response); return; @@ -76,6 +79,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) if (error) { retMsg[F("message")] = F("Failed to parse data!"); + retMsg[F("code")] = WebApiError::GenericParseError; response->setLength(); request->send(response); return; @@ -83,6 +87,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) if (!(root.containsKey("dtu_serial") && root.containsKey("dtu_pollinterval") && root.containsKey("dtu_palevel"))) { retMsg[F("message")] = F("Values are missing!"); + retMsg[F("code")] = WebApiError::GenericValueMissing; response->setLength(); request->send(response); return; @@ -90,6 +95,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) if (root[F("dtu_serial")].as() == 0) { retMsg[F("message")] = F("Serial cannot be zero!"); + retMsg[F("code")] = WebApiError::DtuSerialZero; response->setLength(); request->send(response); return; @@ -97,6 +103,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) if (root[F("dtu_pollinterval")].as() == 0) { retMsg[F("message")] = F("Poll interval must be greater zero!"); + retMsg[F("code")] = WebApiError::DtuPollZero; response->setLength(); request->send(response); return; @@ -104,6 +111,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) if (root[F("dtu_palevel")].as() > 3) { retMsg[F("message")] = F("Invalid power level setting!"); + retMsg[F("code")] = WebApiError::DtuInvalidPowerLevel; response->setLength(); request->send(response); return; @@ -119,6 +127,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) retMsg[F("type")] = F("success"); retMsg[F("message")] = F("Settings saved!"); + retMsg[F("code")] = WebApiError::GenericSuccess; response->setLength(); request->send(response);