//SPDX-FileCopyrightText: 2023 Yury Gubich //SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include #include #include #include "request/request.h" #include "response/response.h" #include "handler/handler.h" class Server; class Router { using Handler = std::unique_ptr; public: Router(); void addRoute(Handler handler); void route(std::unique_ptr request); private: void handleNotFound(std::unique_ptr request); void handleInternalError(const std::exception& exception, std::unique_ptr request); void handleMethodNotAllowed(std::unique_ptr request); private: std::map get; std::map post; };