#pragma once #include #include #include #include #include #include #include "http_server.h" #include "routing.h" // TEST #include namespace flask { class Flask { public: Flask() { } response handle(const request& req) { return router_.handle(req); } auto route(std::string&& rule) -> typename std::result_of::type { return router_.new_rule(std::move(rule)); } Flask& port(std::uint16_t port) { port_ = port; return *this; } void validate() { router_.validate(); } void run() { validate(); Server server(this, port_); server.run(); } private: uint16_t port_ = 80; Router router_; }; };