From 782315b9f43cbdebb697375b2635d099990954df Mon Sep 17 00:00:00 2001 From: TolaMironcenko Date: Sat, 19 Apr 2025 17:03:56 +0700 Subject: [PATCH] updated and added more funcs to be small --- src/auth/auth.cpp | 1 - src/helpers.hpp | 23 +++++++++++++++-------- src/settings/backup.cpp | 6 +----- src/settings/settings.cpp | 21 +++------------------ src/settings/wifi/password.cpp | 21 +++------------------ src/settings/wifi/qr.cpp | 7 +------ src/system/reboot/reboot.cpp | 14 +++----------- src/system/update/update.cpp | 13 +++---------- 8 files changed, 29 insertions(+), 77 deletions(-) diff --git a/src/auth/auth.cpp b/src/auth/auth.cpp index fff8eb5..76c3aea 100644 --- a/src/auth/auth.cpp +++ b/src/auth/auth.cpp @@ -9,7 +9,6 @@ bool authenticate(const std::string &token) httplib::Client cli(config::config.getConfig()["auth_service"]); std::string body = R"({"token":")" + token + R"("})"; - // body << R"({"token":")" << token << R"("})"; httplib::Result res = cli.Post("/api/access", body, JSON_TYPE); if (res->status == httplib::OK_200) { diff --git a/src/helpers.hpp b/src/helpers.hpp index fe85b1c..d96a7a4 100644 --- a/src/helpers.hpp +++ b/src/helpers.hpp @@ -1,13 +1,20 @@ #pragma once #include #include +#include -static bool check_body(const httplib::Request& request) -{ - if (request.body.empty()) - return false; - nlohmann::json json_body = nlohmann::json::parse(request.body); - if (json_body["token"] == nullptr) - return false; - return true; +inline void check_body_empty(const httplib::Request& request, httplib::Response& response, std::string required_string) { + if (request.body.empty()) { + response.set_content(required_string, JSON_TYPE); + syslog(LOG_ERR, "no body in request"); + return; + } +} + +inline void check_body_data(nlohmann::json body, std::string data, httplib::Response& response, std::string required_string) { + if (body[data] == nullptr) { + response.set_content(required_string, JSON_TYPE); + syslog(LOG_ERR, "Error request"); + return; + } } diff --git a/src/settings/backup.cpp b/src/settings/backup.cpp index 2375c69..add1cc8 100644 --- a/src/settings/backup.cpp +++ b/src/settings/backup.cpp @@ -38,11 +38,7 @@ namespace api { std::cout << GREEN << request.path << RESET << " " << request.method << std::endl; response.set_header("Access-Control-Allow-Origin", "*"); - if (!check_body(request)) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } + check_body_empty(request, response, ACCESS_REQUIRED_STRING); if (std::filesystem::exists(config::config.getConfigFileName())) { std::filesystem::remove(config::config.getConfigFileName()); std::filesystem::copy("../config_default.json", config::config.getConfigFileName()); diff --git a/src/settings/settings.cpp b/src/settings/settings.cpp index 27977a5..56f2b4c 100644 --- a/src/settings/settings.cpp +++ b/src/settings/settings.cpp @@ -41,13 +41,8 @@ namespace api { std::cout << GREEN << request.path << RESET << " " << request.method << std::endl; response.set_header("Access-Control-Allow-Origin", "*"); - if (!check_body(request)) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } + check_body_empty(request, response, ACCESS_REQUIRED_STRING); nlohmann::json json_body = nlohmann::json::parse(request.body); - if (!authenticate(json_body["token"])) { response.set_content(R"({"access":"reject"})", JSON_TYPE); @@ -62,19 +57,9 @@ namespace api { std::cout << GREEN << request.path << RESET << " " << request.method << std::endl; response.set_header("Access-Control-Allow-Origin", "*"); - if (!check_body(request)) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } + check_body_empty(request, response, ACCESS_REQUIRED_STRING); nlohmann::json json_body = nlohmann::json::parse(request.body); - - if (json_body["settings"] == nullptr) - { - response.set_content(SETTINGS_REQUIRED_STRING, JSON_TYPE); - return; - } - + check_body_data(json_body, "settings", response, SETTINGS_REQUIRED_STRING); if (!authenticate(json_body["token"])) { response.set_content(R"({"access":"reject"})", JSON_TYPE); diff --git a/src/settings/wifi/password.cpp b/src/settings/wifi/password.cpp index 9679cf5..68be158 100644 --- a/src/settings/wifi/password.cpp +++ b/src/settings/wifi/password.cpp @@ -21,25 +21,10 @@ namespace api { std::cout << GREEN << request.path << RESET << " " << request.method << std::endl; response.set_header("Access-Control-Allow-Origin", "*"); - if (!check_body(request)) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } + check_body_empty(request, response, ACCESS_REQUIRED_STRING); nlohmann::json json_body = nlohmann::json::parse(request.body); - - if (json_body["password"] == nullptr) - { - response.set_content(WIFI_PASSWORD_REQUIRED_STRING, JSON_TYPE); - return; - } - - if (json_body["newpassword"] == nullptr) - { - response.set_content(WIFI_PASSWORD_REQUIRED_STRING, JSON_TYPE); - return; - } - + check_body_data(json_body, "password", response, WIFI_PASSWORD_REQUIRED_STRING); + check_body_data(json_body, "newpassword", response, WIFI_PASSWORD_REQUIRED_STRING); if (!authenticate(json_body["token"])) { response.set_content(R"({"access":"reject"})", JSON_TYPE); diff --git a/src/settings/wifi/qr.cpp b/src/settings/wifi/qr.cpp index 7ddc2be..112d453 100644 --- a/src/settings/wifi/qr.cpp +++ b/src/settings/wifi/qr.cpp @@ -18,13 +18,8 @@ namespace api { std::cout << GREEN << request.path << RESET << " " << request.method << std::endl; response.set_header("Access-Control-Allow-Origin", "*"); - if (!check_body(request)) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } + check_body_empty(request, response, ACCESS_REQUIRED_STRING); nlohmann::json json_body = nlohmann::json::parse(request.body); - if (!authenticate(json_body["token"])) { response.set_content(R"({"access":"reject"})", JSON_TYPE); diff --git a/src/system/reboot/reboot.cpp b/src/system/reboot/reboot.cpp index 22651f8..79c1e08 100644 --- a/src/system/reboot/reboot.cpp +++ b/src/system/reboot/reboot.cpp @@ -3,6 +3,7 @@ #include #include #include +#include namespace api { @@ -12,18 +13,9 @@ namespace api { std::cout << GREEN << request.path << RESET << " " << request.method << std::endl; response.set_header("Access-Control-Allow-Origin", "*"); - if (request.body.empty()) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } - + check_body_empty(request, response, ACCESS_REQUIRED_STRING); nlohmann::json json_body = nlohmann::json::parse(request.body); - if (json_body["token"] == nullptr) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } + check_body_data(json_body, "token", response, ACCESS_REQUIRED_STRING); if (authenticate(json_body["token"])) { diff --git a/src/system/update/update.cpp b/src/system/update/update.cpp index ee6856e..973365d 100644 --- a/src/system/update/update.cpp +++ b/src/system/update/update.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #define DEFAULT_TMP_FILE_NAME "/tmp/image" #define DEFAULT_DST_FILE_NAME "/images/image" @@ -68,17 +69,9 @@ namespace api { std::cout << GREEN << request.path << RESET << " " << request.method << std::endl; response.set_header("Access-Control-Allow-Origin", "*"); - if (request.body.empty()) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } + check_body_empty(request, response, ACCESS_REQUIRED_STRING); nlohmann::json json_body = nlohmann::json::parse(request.body); - if (json_body["token"] == nullptr) - { - response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE); - return; - } + check_body_data(json_body, "token", response, ACCESS_REQUIRED_STRING); if (!authenticate(json_body["token"])) { response.set_content(R"({"access":"reject"})", JSON_TYPE);