diff --git a/src/DAO/IUserDAO.h b/src/DAO/IUserDAO.h index 6792604..d68c3fc 100644 --- a/src/DAO/IUserDAO.h +++ b/src/DAO/IUserDAO.h @@ -1,6 +1,7 @@ #include #include #include +#pragma once #include "../entities/User.h" diff --git a/src/endpoints_handlers/AuthRegistrationExecutor.h b/src/endpoints_handlers/AuthRegistrationExecutor.h index 5e6933c..e6bae2e 100644 --- a/src/endpoints_handlers/AuthRegistrationExecutor.h +++ b/src/endpoints_handlers/AuthRegistrationExecutor.h @@ -1,20 +1,33 @@ #pragma once +#include +#include + #include "IExecutor.h" +#include "../DAO/IUserDAO.h" namespace uad { template class AuthRegistrationExecutor : public IExecutor { + mysqlx::Session& session_; + std::shared_ptr user_dao_; + public: + AuthRegistrationExecutor(mysqlx::Session& session, + std::shared_ptr user_dao) + : session_(session), user_dao_(user_dao) + { + } + boost::beast::http::response operator ()( boost::beast::http::request>&& req ) override { boost::beast::http::response res{ - boost::beast::http::status::ok, req.version() - }; + boost::beast::http::status::ok, req.version() + }; res.body() = "{ \"detail\": \"ok\"}"; res.set(boost::beast::http::field::content_type, "application/json"); diff --git a/src/endpoints_handlers/HandleRequest.h b/src/endpoints_handlers/HandleRequest.h index fed5b13..2ab452d 100644 --- a/src/endpoints_handlers/HandleRequest.h +++ b/src/endpoints_handlers/HandleRequest.h @@ -1,12 +1,12 @@ #pragma once -#include - #include -#include "Controller.h" +#include "../db/mysql_connector.h" +#include "../DAO/IUserDAO.h" #include "AuthRegistrationExecutor.h" #include "RootExecutor.h" +#include "../DAO/MySQLUserDAO.h" namespace uad { @@ -16,7 +16,9 @@ void HandleRequest( boost::beast::http::request>&& req, Send&& send) { - static RootExecutor root_executor; + static RootExecutor root_executor( + GetMySqlSession(), std::make_shared(GetMySqlSession()) + ); root_executor(doc_root, std::move(req), std::forward(send)); } diff --git a/src/endpoints_handlers/RootExecutor.h b/src/endpoints_handlers/RootExecutor.h index 895b912..0c7581f 100644 --- a/src/endpoints_handlers/RootExecutor.h +++ b/src/endpoints_handlers/RootExecutor.h @@ -2,6 +2,7 @@ #include "IController.h" #include "Controller.h" #include "AuthRegistrationExecutor.h" +#include "../DAO/IUserDAO.h" #include "./../helpers/helpers.h" namespace uad @@ -22,13 +23,16 @@ class RootExecutor private: RoutesPathes routes_pathes_; + mysqlx::Session& session_; + std::shared_ptr user_dao_; public: - RootExecutor() + RootExecutor(mysqlx::Session& session, std::shared_ptr user_dao) +: session_(session), user_dao_(user_dao) { routes_pathes_["/api/v1/Auth/Register"] = std::make_unique( typename RouteController::HTTPMethodsToExecutors{ - {boost::beast::http::verb::get, std::make_shared()} + {boost::beast::http::verb::post, std::make_shared(session_, user_dao_)} } ); } diff --git a/src/entities/User.h b/src/entities/User.h index 7e2762e..bfdcaa2 100644 --- a/src/entities/User.h +++ b/src/entities/User.h @@ -1,3 +1,5 @@ +#pragma once + #include namespace uad