From 96594db9790335a0ebeb9b4d27c51e3c884ba33f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Mon, 25 Aug 2025 17:22:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=BE=D1=80=20DAO=20=D0=B8=20User=20Enti?= =?UTF-8?q?ty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 5 +++++ src/DAO/IUserDAO.h | 24 ++++++++++++++++++++++++ src/DAO/MySQLUserDAO.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/DAO/MySQLUserDAO.h | 23 +++++++++++++++++++++++ src/entities/User.cpp | 28 ++++++++++++++++++++++++++++ src/entities/User.h | 19 +++++++++++++++++++ 6 files changed, 135 insertions(+) create mode 100644 src/DAO/IUserDAO.h create mode 100644 src/DAO/MySQLUserDAO.cpp create mode 100644 src/DAO/MySQLUserDAO.h create mode 100644 src/entities/User.cpp create mode 100644 src/entities/User.h diff --git a/CMakeLists.txt b/CMakeLists.txt index e404f80..4317d2c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,11 @@ add_executable(App ./src/main.cpp ./src/listener/Listener.cpp ./src/db/mysql_connector.cpp ./src/db/mysql_connector.h + ./src/DAO/IUserDAO.h + ./src/entities/User.cpp + ./src/entities/User.h + ./src/DAO/MySQLUserDAO.cpp + ./src/DAO/MySQLUserDAO.h ) target_link_libraries(App PRIVATE Boost::boost Threads::Threads mysql::concpp) diff --git a/src/DAO/IUserDAO.h b/src/DAO/IUserDAO.h new file mode 100644 index 0000000..6792604 --- /dev/null +++ b/src/DAO/IUserDAO.h @@ -0,0 +1,24 @@ +#include +#include +#include + +#include "../entities/User.h" + +namespace uad +{ +class IUserDAO +{ +public: + virtual std::string Create(const User& created_user) = 0; + + virtual std::optional GetByGUID(std::string guid) = 0; + + virtual std::vector GetAll() = 0; + + virtual bool Update(const User& u) = 0; + + virtual bool Delete(std::string id) = 0; + + virtual ~IUserDAO() = default; +}; +} diff --git a/src/DAO/MySQLUserDAO.cpp b/src/DAO/MySQLUserDAO.cpp new file mode 100644 index 0000000..02ccf60 --- /dev/null +++ b/src/DAO/MySQLUserDAO.cpp @@ -0,0 +1,36 @@ +#include "MySQLUserDAO.h" + +using namespace std; +using namespace string_literals; + +namespace uad +{ +MySQLUserDAO::MySQLUserDAO(mysqlx::Session& session): session_(session) +{ +} + +string MySQLUserDAO::Create(const User& created_user) +{ + return ""s; +} + +optional MySQLUserDAO::GetByGUID(string guid) +{ + return nullopt; +} + +vector MySQLUserDAO::GetAll() +{ + return {}; +} + +bool MySQLUserDAO::Update(const User& u) +{ + return false; +} + +bool MySQLUserDAO::Delete(string id) +{ + return false; +} +} // uad \ No newline at end of file diff --git a/src/DAO/MySQLUserDAO.h b/src/DAO/MySQLUserDAO.h new file mode 100644 index 0000000..832007a --- /dev/null +++ b/src/DAO/MySQLUserDAO.h @@ -0,0 +1,23 @@ +#include + +#include "IUserDAO.h" + +namespace uad +{ +class MySQLUserDAO : public IUserDAO +{ + mysqlx::Session& session_; +public: + explicit MySQLUserDAO(mysqlx::Session& session); + + std::string Create(const User& created_user); + + std::optional GetByGUID(std::string guid); + + std::vector GetAll(); + + bool Update(const User& u); + + bool Delete(std::string id); +}; +} \ No newline at end of file diff --git a/src/entities/User.cpp b/src/entities/User.cpp new file mode 100644 index 0000000..035e943 --- /dev/null +++ b/src/entities/User.cpp @@ -0,0 +1,28 @@ +// +// Created by Антон on 25.08.2025. +// + +#include "User.h" + +namespace uad +{ +const std::string& User::GetGUID() const noexcept +{ + return guid_; +} + +const std::string& User::GetLogin() const noexcept +{ + return login_; +} + +void User::SetLogin(const std::string& login) +{ + login_ = login; +} + +const std::string& User::GetHashedPassword() const noexcept +{ + return hashed_password_; +} +} \ No newline at end of file diff --git a/src/entities/User.h b/src/entities/User.h new file mode 100644 index 0000000..5d25643 --- /dev/null +++ b/src/entities/User.h @@ -0,0 +1,19 @@ +#include + +namespace uad +{ +class User +{ + std::string guid_; + std::string login_; + std::string hashed_password_; +public: + [[nodiscard]] const std::string& GetGUID() const noexcept; + + [[nodiscard]] const std::string& GetLogin() const noexcept; + + void SetLogin(const std::string& login); + + [[nodiscard]] const std::string& GetHashedPassword() const noexcept; +}; +}