#ifndef ESP32_FIREWALL_API_HPP #define ESP32_FIREWALL_API_HPP #include "HTTPSServer.hpp" #include "SSLCert.hpp" #include "HTTPRequest.hpp" #include "HTTPResponse.hpp" #include "ArduinoJson.h" #include "esp32Firewall.hpp" using namespace httpsserver; namespace firewall { class esp32FirewallApi : public esp32Firewall { private: HTTPSServer *server; SSLCert *certificate; void setup_certificate(); void setup_routing(); void get_firewall_rule_handler(HTTPRequest *, HTTPResponse *); void get_firewall_rules_handler(HTTPRequest *, HTTPResponse *); bool request_has_firewall_parameter(ResourceParameters *); void post_firewall_handler(HTTPRequest *, HTTPResponse *); void delete_firewall_handler(HTTPRequest *, HTTPResponse *); void restart_device_handler(HTTPRequest *, HTTPResponse *); void not_found_handler(HTTPRequest *, HTTPResponse *); void json_generic_response(HTTPResponse *, String, const uint16_t); void json_message_response(HTTPResponse *, String, const uint16_t); String construct_json_firewall_rule(firewall_rule_t *); String construct_json_firewall(); public: esp32FirewallApi(const uint16_t = 8080); ~esp32FirewallApi(); void handle_clients(); }; } #endif