mirror of
https://github.com/EyeTrackVR/OpenIris.git
synced 2025-11-04 15:39:42 +08:00
Major Update
- Remove unneeded `data` folder at root of project - Deprecate API_Utilities class (kept only for the shaEncoder function) - Begin migration to better organization
This commit is contained in:
parent
9a8ff6659a
commit
35f61436ab
@ -1,60 +0,0 @@
|
|||||||
: === WELCOME === TO === :
|
|
||||||
===========================================================================================================================
|
|
||||||
██████╗ ██████╗ ███████╗███╗ ██╗██╗██████╗ ██╗███████╗
|
|
||||||
██╔═══██╗██╔══██╗██╔════╝████╗ ██║██║██╔══██╗██║██╔════╝
|
|
||||||
██║ ██║██████╔╝█████╗ ██╔██╗ ██║██║██████╔╝██║███████╗
|
|
||||||
██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║██║██╔══██╗██║╚════██║
|
|
||||||
╚██████╔╝██║ ███████╗██║ ╚████║██║██║ ██║██║███████║
|
|
||||||
╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝╚═╝╚══════╝
|
|
||||||
|
|
||||||
██████████████
|
|
||||||
██▓▓▓▓▓▓▒▒▒▒▒▒▒▒░░▒▒▓▓▓▓██
|
|
||||||
████▓▓░░░░▒▒░░░░░░▒▒░░░░░░▒▒░░████
|
|
||||||
██▓▓▒▒▓▓▓▓▒▒▒▒░░░░░░▒▒░░▒▒░░░░░░▒▒░░▒▒▓▓▓▓
|
|
||||||
██▓▓▒▒▒▒▒▒▒▒░░▒▒░░░░░░░░░░░░▒▒░░░░▒▒░░░░▒▒░░██
|
|
||||||
██▓▓▓▓░░░░▒▒░░░░▒▒▒▒░░░░░░░░░░▒▒░░ ░░░░░░░░▒▒░░██
|
|
||||||
██▓▓▓▓▓▓▓▓▓▓░░░░░░▒▒░░░░░░░░░░░░░░ ░░░░░░░░░░░░██
|
|
||||||
██▓▓▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░▒▒░░░░░░░░░░░░ ░░ ▒▒▒▒██
|
|
||||||
██▓▓▒▒▒▒▒▒▒▒░░░░▒▒░░░░░░░░░░░░░░░░░░ ░░░░██
|
|
||||||
▓▓▓▓▒▒▒▒▒▒▒▒▒▒░░░░░░▒▒░░░░░░░░░░░░░░░░░░▓▓▓▓▓▓▓▓▓▓ ░░ ▒▒▓▓
|
|
||||||
██▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▒▒▒▒▒▒▒▒▓▓▓▓▓▓ ░░██
|
|
||||||
▓▓▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓▓▒▒ ░░▒▒▓▓
|
|
||||||
██▓▓▒▒░░░░░░▒▒▒▒▒▒░░░░░░░░░░░░░░░░▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▓▓▓▓ ░░██
|
|
||||||
██▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒░░░░░░░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒▒████▓▓░░░░▒▒▓▓ ░░██
|
|
||||||
██▓▓▒▒▒▒▒▒▓▓▒▒▓▓░░░░░░░░░░░░░░░░░░▓▓▒▒▒▒░░▒▒▒▒████ ▒▒██░░▒▒▓▓▓▓ ░░██
|
|
||||||
██▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░▓▓░░▒▒▒▒▒▒██████▒▒ ▓▓▓▓░░▓▓▓▓ ░░██
|
|
||||||
██▓▓▒▒▒▒░░▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░▓▓▒▒░░▒▒░░████████▓▓ ██▓▓▒▒▓▓ ░░██
|
|
||||||
██▓▓▓▓▓▓▓▓▒▒▒▒▒▒░░░░░░▒▒░░░░░░░░░░▒▒░░▒▒░░▒▒██████████▒▒██▒▒▒▒▓▓ ░░██
|
|
||||||
██▓▓▒▒▒▒▒▒░░░░░░░░▒▒▒▒░░░░░░░░░░░░▒▒▒▒░░░░▒▒██▒▒██████ ██▒▒▒▒▓▓ ░░██
|
|
||||||
██▒▒▒▒▒▒░░▓▓▓▓▓▓▒▒░░░░░░░░░░░░░░░░▒▒░░ ▒▒░░██ ▒▒████▒▒██▒▒▒▒▓▓ ░░██
|
|
||||||
██▓▓▓▓▓▓▓▓░░▒▒▒▒░░▒▒░░░░░░░░░░░░░░▒▒▒▒░░░░░░▒▒██ ██████▒▒▒▒▒▒▓▓░░░░██
|
|
||||||
██▓▓██▓▓▒▒▒▒▓▓░░░░▒▒░░░░░░░░░░░░░░░░░░▒▒▒▒░░▒▒░░▒▒██████▒▒▒▒▒▒▓▓ ░░██
|
|
||||||
██▓▓██▒▒▒▒▒▒▒▒▓▓▓▓▒▒░░░░░░░░░░░░░░░░░░▒▒░░▒▒░░▒▒░░▒▒░░▒▒▒▒▒▒▒▒▓▓░░░░██
|
|
||||||
██▒▒▓▓██▓▓▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░▒▒░░▒▒░░░░░░▒▒▒▒▒▒▒▒▓▓ ░░░░██
|
|
||||||
██▒▒▒▒▓▓██▓▓▓▓▒▒▒▒▒▒▒▒░░░░░░░░▒▒░░░░░░░░░░░░▒▒▒▒▒▒░░▒▒▒▒▒▒▓▓▓▓ ░░░░██
|
|
||||||
▓▓▓▓▒▒▒▒▓▓██▓▓▒▒▒▒▒▒░░░░▒▒▒▒░░▒▒░░░░░░░░░░░░░░░░░░▒▒▒▒▓▓▓▓▓▓░░░░░░░░▒▒██
|
|
||||||
██▒▒▒▒▓▓▒▒▓▓██▒▒▒▒▒▒▒▒▓▓▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░ ░░░░██
|
|
||||||
██▒▒▒▒▓▓░░▒▒▒▒██▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░▒▒██
|
|
||||||
██▒▒▒▒▓▓▒▒░░▓▓▒▒██▓▓▒▒▒▒▒▒▒▒░░▓▓▒▒▓▓▒▒░░░░▒▒░░░░░░░░░░░░░░░░░░░░░░▓▓██
|
|
||||||
██▒▒▒▒▒▒░░▒▒▒▒▒▒▓▓██▓▓▒▒▒▒▒▒▓▓▒▒▒▒▒▒▒▒▒▒▓▓░░░░░░░░░░▒▒░░░░▒▒░░▒▒▒▒██
|
|
||||||
██▒▒▒▒░░▒▒░░▒▒████ ██▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▓▓▒▒▒▒▒▒▓▓▒▒██
|
|
||||||
██▒▒▓▓░░▒▒░░▓▓ ████▓▓▒▒▓▓▒▒▒▒▒▒░░▒▒▒▒▒▒▒▒▓▓▒▒▒▒▒▒▒▒▒▒██▓▓
|
|
||||||
██▒▒▒▒▒▒▒▒ ██ ████▓▓▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▒▒▒▒▒▒████
|
|
||||||
██▒▒▒▒▒▒▒▒░░██ ██████▓▓▒▒▒▒▒▒▒▒▓▓▓▓██████
|
|
||||||
██▒▒▒▒▒▒▒▒░░ ████ ██████████████
|
|
||||||
██▒▒▒▒▒▒▒▒░░ ░░████
|
|
||||||
████▒▒▒▒▒▒░░░░ ░░████
|
|
||||||
████▒▒▒▒▒▒░░░░ ░░██
|
|
||||||
████▒▒▒▒▒▒░░ ░░██
|
|
||||||
██▓▓▒▒▒▒░░ ▒▒▓▓
|
|
||||||
████▒▒░░ ▒▒██
|
|
||||||
▓▓▒▒░░░░██
|
|
||||||
██░░ ██
|
|
||||||
▓▓██ ██░░░░██
|
|
||||||
██░░██ ██░░░░██
|
|
||||||
██░░██ ██░░▒▒██
|
|
||||||
██░░▒▒████░░▒▒██
|
|
||||||
▓▓▒▒▒▒▒▒▒▒▓▓
|
|
||||||
████████
|
|
||||||
|
|
||||||
============================================================================================================================
|
|
||||||
@ -1,14 +1,24 @@
|
|||||||
#include "baseAPI.hpp"
|
#include "baseAPI.hpp"
|
||||||
|
|
||||||
|
//! These have to be called before the constructor of the class because they are static
|
||||||
|
//! C++ 11 does not have inline variables, sadly. So we have to do this.
|
||||||
|
//const char *BaseAPI::MIMETYPE_HTML{"text/html"};
|
||||||
|
// const char *BaseAPI::MIMETYPE_CSS{"text/css"};
|
||||||
|
// const char *BaseAPI::MIMETYPE_JS{"application/javascript"};
|
||||||
|
// const char *BaseAPI::MIMETYPE_PNG{"image/png"};
|
||||||
|
// const char *BaseAPI::MIMETYPE_JPG{"image/jpeg"};
|
||||||
|
// const char *BaseAPI::MIMETYPE_ICO{"image/x-icon"};
|
||||||
|
const char *BaseAPI::MIMETYPE_JSON{"application/json"};
|
||||||
|
|
||||||
BaseAPI::BaseAPI(int CONTROL_PORT,
|
BaseAPI::BaseAPI(int CONTROL_PORT,
|
||||||
ProjectConfig *projectConfig,
|
ProjectConfig *projectConfig,
|
||||||
CameraHandler *camera,
|
CameraHandler *camera,
|
||||||
StateManager<WiFiState_e> *WiFiStateManager,
|
StateManager<WiFiState_e> *WiFiStateManager,
|
||||||
const std::string &api_url) : API_Utilities(CONTROL_PORT,
|
const std::string &api_url) : server(new AsyncWebServer(CONTROL_PORT)),
|
||||||
projectConfig,
|
projectConfig(projectConfig),
|
||||||
camera,
|
camera(camera),
|
||||||
WiFiStateManager,
|
WiFiStateManager(WiFiStateManager),
|
||||||
api_url) {}
|
api_url(api_url) {}
|
||||||
|
|
||||||
BaseAPI::~BaseAPI() {}
|
BaseAPI::~BaseAPI() {}
|
||||||
|
|
||||||
@ -29,11 +39,26 @@ void BaseAPI::begin()
|
|||||||
|
|
||||||
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*");
|
DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
|
||||||
// std::bind(&BaseAPI::API_Utilities::notFound, &api_utilities, std::placeholders::_1);
|
// std::bind(&BaseAPI::notFound, &std::placeholders::_1);
|
||||||
server->onNotFound([&](AsyncWebServerRequest *request)
|
server->onNotFound([&](AsyncWebServerRequest *request)
|
||||||
{ notFound(request); });
|
{ notFound(request); });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BaseAPI::notFound(AsyncWebServerRequest *request) const
|
||||||
|
{
|
||||||
|
if (_networkMethodsMap.find(request->method()) != _networkMethodsMap.end())
|
||||||
|
{
|
||||||
|
log_i("%s: http://%s%s/\n", _networkMethodsMap.at(request->method()).c_str(), request->host().c_str(), request->url().c_str());
|
||||||
|
char buffer[100];
|
||||||
|
snprintf(buffer, sizeof(buffer), "Request %s Not found: %s", _networkMethodsMap.at(request->method()).c_str(), request->url().c_str());
|
||||||
|
request->send(404, "text/plain", buffer);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
request->send(404, "text/plain", "Request Not found using unknown method");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//*********************************************************************************************
|
//*********************************************************************************************
|
||||||
//! Command Functions
|
//! Command Functions
|
||||||
//*********************************************************************************************
|
//*********************************************************************************************
|
||||||
@ -76,7 +101,7 @@ void BaseAPI::setWiFi(AsyncWebServerRequest *request)
|
|||||||
|
|
||||||
projectConfig->setWifiConfig(ssid, ssid, password, &channel, adhoc, true);
|
projectConfig->setWifiConfig(ssid, ssid, password, &channel, adhoc, true);
|
||||||
|
|
||||||
/* if (WiFitateManager->getCurrentState() == WiFiState_e::WiFiState_ADHOC)
|
/* if (WiFiStateManager->getCurrentState() == WiFiState_e::WiFiState_ADHOC)
|
||||||
{
|
{
|
||||||
projectConfig->setAPWifiConfig(ssid, password, &channel, adhoc, true);
|
projectConfig->setAPWifiConfig(ssid, password, &channel, adhoc, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,37 @@
|
|||||||
#ifndef BASEAPI_HPP
|
#ifndef BASEAPI_HPP
|
||||||
#define BASEAPI_HPP
|
#define BASEAPI_HPP
|
||||||
#include "network/wifihandler/wifiHandler.hpp"
|
|
||||||
#include "network/api/utilities/apiUtilities.hpp"
|
#include <unordered_map>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#define WEBSERVER_H
|
||||||
|
|
||||||
|
/* #define XHTTP_GET 0b00000001;
|
||||||
|
#define XHTTP_POST 0b00000010;
|
||||||
|
#define XHTTP_DELETE 0b00000100;
|
||||||
|
#define XHTTP_PUT 0b00001000;
|
||||||
|
#define XHTTP_PATCH 0b00010000;
|
||||||
|
#define XHTTP_HEAD 0b00100000;
|
||||||
|
#define XHTTP_OPTIONS 0b01000000;
|
||||||
|
#define XHTTP_ANY 0b01111111; */
|
||||||
|
|
||||||
|
#define HTTP_ANY 0b01111111
|
||||||
|
#define HTTP_GET 0b00000001
|
||||||
|
|
||||||
|
#include <ESPAsyncWebServer.h>
|
||||||
|
#include <AsyncTCP.h>
|
||||||
|
|
||||||
|
//#include "network/api/utilities/apiUtilities.hpp" //! Only needed for the shaEncoder function (for now)
|
||||||
#include "data/utilities/network_utilities.hpp"
|
#include "data/utilities/network_utilities.hpp"
|
||||||
|
|
||||||
class BaseAPI : public API_Utilities
|
#include "data/config/project_config.hpp"
|
||||||
|
#include "data/StateManager/StateManager.hpp"
|
||||||
|
#include "io/camera/cameraHandler.hpp"
|
||||||
|
|
||||||
|
class BaseAPI
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
std::string api_url;
|
||||||
|
|
||||||
enum JSON_TYPES
|
enum JSON_TYPES
|
||||||
{
|
{
|
||||||
@ -29,6 +54,14 @@ protected:
|
|||||||
{"wifiap", WIFIAP},
|
{"wifiap", WIFIAP},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *MIMETYPE_HTML;
|
||||||
|
/* static const char *MIMETYPE_CSS; */
|
||||||
|
/* static const char *MIMETYPE_JS; */
|
||||||
|
/* static const char *MIMETYPE_PNG; */
|
||||||
|
/* static const char *MIMETYPE_JPG; */
|
||||||
|
/* static const char *MIMETYPE_ICO; */
|
||||||
|
static const char *MIMETYPE_JSON;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/* Commands */
|
/* Commands */
|
||||||
void setWiFi(AsyncWebServerRequest *request);
|
void setWiFi(AsyncWebServerRequest *request);
|
||||||
@ -51,6 +84,41 @@ protected:
|
|||||||
route_t routes;
|
route_t routes;
|
||||||
route_map_t route_map;
|
route_map_t route_map;
|
||||||
|
|
||||||
|
std::unordered_map<int, std::string> _networkMethodsMap = {
|
||||||
|
{0b00000001, "GET"},
|
||||||
|
{0b00000010, "POST"},
|
||||||
|
{0b00001000, "PUT"},
|
||||||
|
{0b00000100, "DELETE"},
|
||||||
|
{0b00010000, "PATCH"},
|
||||||
|
{0b01000000, "OPTIONS"},
|
||||||
|
};
|
||||||
|
|
||||||
|
enum RequestMethods
|
||||||
|
{
|
||||||
|
GET,
|
||||||
|
POST,
|
||||||
|
PUT,
|
||||||
|
DELETE,
|
||||||
|
PATCH,
|
||||||
|
OPTIONS,
|
||||||
|
};
|
||||||
|
|
||||||
|
std::unordered_map<int, RequestMethods> _networkMethodsMap_enum = {
|
||||||
|
{0b00000001, GET},
|
||||||
|
{0b00000010, POST},
|
||||||
|
{0b00001000, PUT},
|
||||||
|
{0b00000100, DELETE},
|
||||||
|
{0b00010000, PATCH},
|
||||||
|
{0b01000000, OPTIONS},
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef std::unordered_map<std::string, WebRequestMethodComposite> networkMethodsMap_t;
|
||||||
|
|
||||||
|
ProjectConfig *projectConfig;
|
||||||
|
AsyncWebServer *server;
|
||||||
|
CameraHandler *camera;
|
||||||
|
StateManager<WiFiState_e> *WiFiStateManager;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
BaseAPI(int CONTROL_PORT,
|
BaseAPI(int CONTROL_PORT,
|
||||||
ProjectConfig *projectConfig,
|
ProjectConfig *projectConfig,
|
||||||
@ -60,6 +128,7 @@ public:
|
|||||||
|
|
||||||
virtual ~BaseAPI();
|
virtual ~BaseAPI();
|
||||||
virtual void begin();
|
virtual void begin();
|
||||||
|
void notFound(AsyncWebServerRequest *request) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BASEAPI_HPP
|
#endif // BASEAPI_HPP
|
||||||
@ -1,28 +1,10 @@
|
|||||||
#include "apiUtilities.hpp"
|
#include "apiUtilities.hpp"
|
||||||
|
|
||||||
//! These have to be called before the constructor of the class because they are static
|
|
||||||
//! C++ 11 does not have inline variables, sadly. So we have to do this.
|
|
||||||
const char *API_Utilities::MIMETYPE_HTML{"text/html"};
|
|
||||||
// const char *BaseAPI::MIMETYPE_CSS{"text/css"};
|
|
||||||
// const char *BaseAPI::MIMETYPE_JS{"application/javascript"};
|
|
||||||
// const char *BaseAPI::MIMETYPE_PNG{"image/png"};
|
|
||||||
// const char *BaseAPI::MIMETYPE_JPG{"image/jpeg"};
|
|
||||||
// const char *BaseAPI::MIMETYPE_ICO{"image/x-icon"};
|
|
||||||
const char *API_Utilities::MIMETYPE_JSON{"application/json"};
|
|
||||||
|
|
||||||
//*********************************************************************************************
|
//*********************************************************************************************
|
||||||
//! API Utilities
|
//! API Utilities
|
||||||
//*********************************************************************************************
|
//*********************************************************************************************
|
||||||
|
|
||||||
API_Utilities::API_Utilities(int CONTROL_PORT,
|
API_Utilities::API_Utilities() {};
|
||||||
ProjectConfig *projectConfig,
|
|
||||||
CameraHandler *camera,
|
|
||||||
StateManager<WiFiState_e> *WiFiStateManager,
|
|
||||||
const std::string &api_url) : server(new AsyncWebServer(CONTROL_PORT)),
|
|
||||||
projectConfig(projectConfig),
|
|
||||||
WiFiStateManager(WiFiStateManager),
|
|
||||||
camera(camera),
|
|
||||||
api_url(api_url) {}
|
|
||||||
|
|
||||||
API_Utilities::~API_Utilities() {}
|
API_Utilities::~API_Utilities() {}
|
||||||
|
|
||||||
@ -54,18 +36,3 @@ std::string API_Utilities::shaEncoder(std::string data)
|
|||||||
}
|
}
|
||||||
return hash_string;
|
return hash_string;
|
||||||
}
|
}
|
||||||
|
|
||||||
void API_Utilities::notFound(AsyncWebServerRequest *request) const
|
|
||||||
{
|
|
||||||
if (_networkMethodsMap.find(request->method()) != _networkMethodsMap.end())
|
|
||||||
{
|
|
||||||
log_i("%s: http://%s%s/\n", _networkMethodsMap.at(request->method()).c_str(), request->host().c_str(), request->url().c_str());
|
|
||||||
char buffer[100];
|
|
||||||
snprintf(buffer, sizeof(buffer), "Request %s Not found: %s", _networkMethodsMap.at(request->method()).c_str(), request->url().c_str());
|
|
||||||
request->send(404, "text/plain", buffer);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
request->send(404, "text/plain", "Request Not found using unknown method");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,90 +1,20 @@
|
|||||||
#ifndef APIUTILITIES_HPP
|
#ifndef APIUTILITIES_HPP
|
||||||
#define APIUTILITIES_HPP
|
#define APIUTILITIES_HPP
|
||||||
|
|
||||||
#include <unordered_map>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#define WEBSERVER_H
|
|
||||||
|
|
||||||
/* #define XHTTP_GET 0b00000001;
|
|
||||||
#define XHTTP_POST 0b00000010;
|
|
||||||
#define XHTTP_DELETE 0b00000100;
|
|
||||||
#define XHTTP_PUT 0b00001000;
|
|
||||||
#define XHTTP_PATCH 0b00010000;
|
|
||||||
#define XHTTP_HEAD 0b00100000;
|
|
||||||
#define XHTTP_OPTIONS 0b01000000;
|
|
||||||
#define XHTTP_ANY 0b01111111; */
|
|
||||||
|
|
||||||
#define HTTP_ANY 0b01111111
|
|
||||||
#define HTTP_GET 0b00000001
|
|
||||||
|
|
||||||
#include <ESPAsyncWebServer.h>
|
|
||||||
#include <AsyncTCP.h>
|
|
||||||
//#include <SPIFFS.h>
|
//#include <SPIFFS.h>
|
||||||
#include "mbedtls/md.h"
|
#include "mbedtls/md.h"
|
||||||
#include "data/config/project_config.hpp"
|
#include "data/utilities/network_utilities.hpp"
|
||||||
#include "network/wifihandler/WifiHandler.hpp"
|
|
||||||
#include "data/StateManager/StateManager.hpp"
|
|
||||||
#include "io/camera/cameraHandler.hpp"
|
|
||||||
|
|
||||||
class API_Utilities
|
class API_Utilities
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
API_Utilities(int CONTROL_PORT,
|
API_Utilities();
|
||||||
ProjectConfig *projectConfig,
|
|
||||||
CameraHandler *camera,
|
|
||||||
StateManager<WiFiState_e> *WiFiStateManager,
|
|
||||||
const std::string &api_url);
|
|
||||||
virtual ~API_Utilities();
|
virtual ~API_Utilities();
|
||||||
|
static std::string shaEncoder(std::string data);
|
||||||
|
|
||||||
protected:
|
public:
|
||||||
void notFound(AsyncWebServerRequest *request) const;
|
|
||||||
std::string shaEncoder(std::string data);
|
|
||||||
std::unordered_map<int, std::string> _networkMethodsMap = {
|
|
||||||
{0b00000001, "GET"},
|
|
||||||
{0b00000010, "POST"},
|
|
||||||
{0b00001000, "PUT"},
|
|
||||||
{0b00000100, "DELETE"},
|
|
||||||
{0b00010000, "PATCH"},
|
|
||||||
{0b01000000, "OPTIONS"},
|
|
||||||
};
|
|
||||||
|
|
||||||
enum RequestMethods
|
|
||||||
{
|
|
||||||
GET,
|
|
||||||
POST,
|
|
||||||
PUT,
|
|
||||||
DELETE,
|
|
||||||
PATCH,
|
|
||||||
OPTIONS,
|
|
||||||
};
|
|
||||||
|
|
||||||
std::unordered_map<int, RequestMethods> _networkMethodsMap_enum = {
|
|
||||||
{0b00000001, GET},
|
|
||||||
{0b00000010, POST},
|
|
||||||
{0b00001000, PUT},
|
|
||||||
{0b00000100, DELETE},
|
|
||||||
{0b00010000, PATCH},
|
|
||||||
{0b01000000, OPTIONS},
|
|
||||||
};
|
|
||||||
|
|
||||||
protected:
|
|
||||||
ProjectConfig *projectConfig;
|
|
||||||
AsyncWebServer *server;
|
|
||||||
CameraHandler *camera;
|
|
||||||
StateManager<WiFiState_e> *WiFiStateManager;
|
|
||||||
typedef std::unordered_map<std::string, WebRequestMethodComposite> networkMethodsMap_t;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
std::string api_url;
|
|
||||||
|
|
||||||
static const char *MIMETYPE_HTML;
|
|
||||||
/* static const char *MIMETYPE_CSS; */
|
|
||||||
/* static const char *MIMETYPE_JS; */
|
|
||||||
/* static const char *MIMETYPE_PNG; */
|
|
||||||
/* static const char *MIMETYPE_JPG; */
|
|
||||||
/* static const char *MIMETYPE_ICO; */
|
|
||||||
static const char *MIMETYPE_JSON;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // APIUTILITIES_HPP
|
#endif // APIUTILITIES_HPP
|
||||||
@ -37,10 +37,10 @@ void APIServer::setupServer()
|
|||||||
routes.emplace("resetConfig", &APIServer::factoryReset);
|
routes.emplace("resetConfig", &APIServer::factoryReset);
|
||||||
routes.emplace("rebootDevice", &APIServer::rebootDevice);
|
routes.emplace("rebootDevice", &APIServer::rebootDevice);
|
||||||
routes.emplace("setJson", &APIServer::handleJson);
|
routes.emplace("setJson", &APIServer::handleJson);
|
||||||
routes.emplace("setCamera", &APIServer::setCamera);
|
|
||||||
routes.emplace("deleteRoute", &APIServer::deleteRoute);
|
routes.emplace("deleteRoute", &APIServer::deleteRoute);
|
||||||
routes.emplace("restartCamera", &APIServer::restartCamera);
|
|
||||||
// Camera Routes
|
// Camera Routes
|
||||||
|
routes.emplace("setCamera", &APIServer::setCamera);
|
||||||
|
routes.emplace("restartCamera", &APIServer::restartCamera);
|
||||||
|
|
||||||
//! reserve enough memory for all routes - must be called after adding routes and before adding routes to route_map
|
//! reserve enough memory for all routes - must be called after adding routes and before adding routes to route_map
|
||||||
indexes.reserve(routes.size()); // this is done to avoid reallocation of memory and copying of data
|
indexes.reserve(routes.size()); // this is done to avoid reallocation of memory and copying of data
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user