From ad69f8dab682ad0e51fc8df6505d571704dc755c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Sun, 28 Sep 2025 07:59:59 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=87=D0=B0=D1=8F=20?= =?UTF-8?q?=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20=D1=81=20=D1=82=D1=80?= =?UTF-8?q?=D0=B5=D1=82=D1=8C=D0=B5=D0=B9=20=D1=80=D1=83=D1=87=D0=BA=D0=BE?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DAO/MySQLUserDAO.cpp | 58 +++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/src/DAO/MySQLUserDAO.cpp b/src/DAO/MySQLUserDAO.cpp index 2ab829f..ac94abe 100644 --- a/src/DAO/MySQLUserDAO.cpp +++ b/src/DAO/MySQLUserDAO.cpp @@ -9,7 +9,8 @@ using namespace string_literals; namespace uad { -MySQLUserDAO::MySQLUserDAO(mysqlx::Session& session) : session_(session) +MySQLUserDAO::MySQLUserDAO(mysqlx::Session& session) : + session_(session) { } @@ -17,10 +18,12 @@ string MySQLUserDAO::Create(const user& created_user) { boost::uuids::random_generator generator; boost::uuids::uuid uuid = generator(); - std::string uuid_str = boost::uuids::to_string(uuid); + const std::string uuid_str = boost::uuids::to_string(uuid); - string sql_script = - "INSERT INTO `up_and_down`.`users` (`uuid`, `login`, `hashed_password`) VALUES (?, ?, ?);"s; + + const string sql_script = + "INSERT INTO `up_and_down`.`users` (`uuid`, `login`, `hashed_password`) VALUES ('" + + uuid_str + "', '" + created_user.login +"', '" + created_user.hashed_password + "');"s; session_.sql(sql_script) .bind(uuid_str, created_user.login, created_user.hashed_password) @@ -31,18 +34,22 @@ string MySQLUserDAO::Create(const user& created_user) optional MySQLUserDAO::GetByUUID(const string& uuid) { + const string sql_script = "SELECT * FROM `up_and_down`.`users`"s + + "WHERE (uuid = '"s + uuid + + "') LIMIT 1;"s; mysqlx::SqlResult sql_result = session_. - sql("SELECT * FROM `up_and_down`.`users` WHERE (uuid = '" + uuid + - "') LIMIT 1;"s).execute(); + sql(sql_script).execute(); return GetSingleUserBySQLResult(std::move(sql_result)); } optional MySQLUserDAO::GetByLogin(const string& login) { + const std::string sql_script = "SELECT * FROM `up_and_down`.`users`" + + "WHERE (login = '" + login + + "') LIMIT 1;"s; mysqlx::SqlResult sql_result = session_. - sql("SELECT * FROM `up_and_down`.`users` WHERE (login = '" + login - + "') LIMIT 1;"s).execute(); + sql(sql_script).execute(); return GetSingleUserBySQLResult(std::move(sql_result)); } @@ -50,8 +57,9 @@ optional MySQLUserDAO::GetByLogin(const string& login) pair> MySQLUserDAO::GetAll(size_t limit, size_t offset) { mysqlx::SqlResult sql_result = session_ - .sql("SELECT * FROM `up_and_down`.`users` LIMIT ? OFFSET ?;"s) - .bind(limit, offset) + .sql("SELECT * FROM `up_and_down`.`users` "s + + "LIMIT "s + to_string(limit) + + " OFFSET "s + to_string(offset) + ";"s) .execute(); list rows = sql_result.fetchAll(); pair> ret; @@ -78,8 +86,8 @@ pair> MySQLUserDAO::GetAll(size_t limit, size_t offset) user user; - string user_uuid = row[0].get(); - string user_login = row[1].get(); + const string user_uuid = row[0].get(); + const string user_login = row[1].get(); user.login = user_login; user.uuid = user_uuid; @@ -94,13 +102,13 @@ pair> MySQLUserDAO::GetAll(size_t limit, size_t offset) bool MySQLUserDAO::Update(const user& u) { auto schema = session_.getSchema("up_and_down"); - auto table = schema.getTable("users"); + auto table = schema.getTable("users"); mysqlx::Result res = table.update() - .set("login", u.login) - .set("hashed_password", u.hashed_password) - .where("uuid = :uuid") - .bind("uuid", u.uuid) - .execute(); + .set("login", u.login) + .set("hashed_password", u.hashed_password) + .where("uuid = :uuid") + .bind("uuid", u.uuid) + .execute(); return !!res.getAffectedItemsCount(); } @@ -108,11 +116,11 @@ bool MySQLUserDAO::Update(const user& u) bool MySQLUserDAO::Delete(const string& uuid) { auto schema = session_.getSchema("up_and_down"); - auto table = schema.getTable("users"); + auto table = schema.getTable("users"); mysqlx::Result res = table.remove() - .where("uuid = :uuid") - .bind("uuid", uuid) - .execute(); + .where("uuid = :uuid") + .bind("uuid", uuid) + .execute(); return !!res.getAffectedItemsCount(); } @@ -128,9 +136,9 @@ std::optional MySQLUserDAO::GetSingleUserBySQLResult(mysqlx::SqlResult&& s auto row_data = *rows.begin(); - string user_uuid = row_data[0].get(); - string user_login = row_data[1].get(); - string user_hashed_password = row_data[2].get(); + const string user_uuid = row_data[0].get(); + const string user_login = row_data[1].get(); + const string user_hashed_password = row_data[2].get(); user single_user;