diff --git a/README.md b/README.md index 0cd85ee..1753669 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,13 @@ - ~~Перевести GetByUUID GetByLogin на const ref/string_view в IUserDAO - также не vector, а span(погуглить)~~ - span не применим - ~~Привести к единому виду функции IUserDAO~~ - ~~Пройтись по коду и максимально наставить const~~ -- Указать возможные исключения в интерфейсах DAO +- ~~Указать возможные исключения в интерфейсах DAO - почему может выбросить исключение~~ - ~~Вынести User в структуру. Hashed Password структура должна изначально состоять в другой структуре~~ - ~~SharedPtr - передавать по константной ссылке.~~ -- Вынести обработку исключений в RootExecutor +- ~~Вынести обработку исключений в RootExecutor~~ +- Уменьшить дублирование кода в исключениях +- Покрыть логами +- Сделать один класс исключений, имеющих метод HTTP code - код и сообщение записывать уже в ловушке - Сделать интеграционный тест по ручкам # UseCase'ы приложения: diff --git a/src/DAO/MySQLUserDAO.cpp b/src/DAO/MySQLUserDAO.cpp index 3d3fccf..55023c4 100644 --- a/src/DAO/MySQLUserDAO.cpp +++ b/src/DAO/MySQLUserDAO.cpp @@ -21,7 +21,7 @@ string MySQLUserDAO::Create(const user& created_user) const std::string uuid_str = boost::uuids::to_string(uuid); - const string sql_script = + static const string sql_script = "INSERT INTO `up_and_down`.`users` (`uuid`, `login`, `hashed_password`) VALUES (?, ?, ?);"s; session_. @@ -33,7 +33,7 @@ string MySQLUserDAO::Create(const user& created_user) optional MySQLUserDAO::GetByUUID(const string& uuid) { - const string sql_script = "SELECT * FROM `up_and_down`.`users` WHERE (uuid = ?) LIMIT 1;"s; + static const string sql_script = "SELECT * FROM `up_and_down`.`users` WHERE (uuid = ?) LIMIT 1;"s; mysqlx::SqlResult sql_result = session_. sql(sql_script) .bind(uuid) @@ -44,7 +44,7 @@ optional MySQLUserDAO::GetByUUID(const string& uuid) optional MySQLUserDAO::GetByLogin(const string& login) { - const std::string sql_script = "SELECT * FROM `up_and_down`.`users` WHERE (login = ?) LIMIT 1;"s; + static const std::string sql_script = "SELECT * FROM `up_and_down`.`users` WHERE (login = ?) LIMIT 1;"s; mysqlx::SqlResult sql_result = session_. sql(sql_script) .bind(login) @@ -55,8 +55,10 @@ optional MySQLUserDAO::GetByLogin(const string& login) pair> MySQLUserDAO::GetAll(size_t limit, size_t offset) { + static const string sql_script = "SELECT * FROM `up_and_down`.`users` LIMIT ? OFFSET ?;"s; + mysqlx::SqlResult sql_result = session_ - .sql("SELECT * FROM `up_and_down`.`users` LIMIT ? OFFSET ?;"s) + .sql(sql_script) .bind(limit, offset) .execute(); list rows = sql_result.fetchAll(); @@ -96,7 +98,7 @@ pair> MySQLUserDAO::GetAll(size_t limit, size_t offset) bool MySQLUserDAO::Update(const user& u) { - const string sql_script = "UPDATE `up_and_down`.`users` SET `login` = ? WHERE `uuid` = ?;"s; + static const string sql_script = "UPDATE `up_and_down`.`users` SET `login` = ? WHERE `uuid` = ?;"s; auto schema = session_.sql(sql_script) .bind(u.login, u.uuid) @@ -107,7 +109,7 @@ bool MySQLUserDAO::Update(const user& u) bool MySQLUserDAO::Delete(const string& uuid) { - const string sql_script = "DELETE FROM `up_and_down`.`users` WHERE `uuid` = ?;"; + static const string sql_script = "DELETE FROM `up_and_down`.`users` WHERE `uuid` = ?;"; auto schema = session_.sql(sql_script) .bind(uuid)