#pragma once // Service includes #include <mongo_service.hpp> #include <aws_s3_service.hpp> // Controller includes #include <mongo_controller.hpp> #include <aws_s3_controller.hpp> #include <boost/beast/http.hpp> #include <boost/json.hpp> #include <boost/url.hpp> namespace sravz { class router { public: router() { init_(); } std::pair<boost::beast::http::status, std::string> route(boost::beast::http::verb method, const std::string& uri, const std::string& body); private: void init_(); // Services std::shared_ptr<sravz::services::mongo::MongoClient> mongoClient_; std::shared_ptr<sravz::services::aws::s3::S3Client> s3Client_; // Controllers std::shared_ptr<sravz::controllers::mongo::MongoController> mongoController_; std::shared_ptr<sravz::controllers::aws::AWSS3Controller> awsS3Controller_; }; }