diff --git a/src/DAO/IDiariesDAO.h b/src/DAO/IDiariesDAO.h index 3b7db99..fb416e4 100644 --- a/src/DAO/IDiariesDAO.h +++ b/src/DAO/IDiariesDAO.h @@ -10,22 +10,22 @@ namespace uad class IDiariesDAO { public: - virtual std::vector GetDiariesByUserUUID(const std::string& login) = 0; + virtual std::vector GetDiariesByUserUUID(std::string_view login) = 0; virtual void СreateDiary( - const std::string& user_uuid, + std::string_view user_uuid, const diary_dto& dto ) const = 0; virtual void UpdateDiary( - const std::string& user_uuid, - const std::string& diary_uuid, + std::string_view user_uuid, + std::string_view diary_uuid, const diary_dto& dto ) const = 0; virtual void DeleteDiary( - const std::string& user_uuid, - const std::string& diary_uuid + std::string_view user_uuid, + std::string_view diary_uuid ) const = 0; virtual ~IDiariesDAO() = default; diff --git a/src/DAO/IUserDAO.h b/src/DAO/IUserDAO.h index a49881b..4ac96f4 100644 --- a/src/DAO/IUserDAO.h +++ b/src/DAO/IUserDAO.h @@ -13,15 +13,15 @@ class IUserDAO public: virtual std::string Create(const user_dto& created_user) = 0; - virtual std::optional GetByUUID(const std::string& uuid) = 0; + virtual std::optional GetByUUID(std::string_view uuid) = 0; - virtual std::optional GetByLogin(const std::string& login) = 0; + virtual std::optional GetByLogin(std::string_view login) = 0; virtual std::pair> GetAll(size_t limit, size_t offset) = 0; virtual bool Update(const user_dto& u) = 0; - virtual bool Delete(const std::string& uuid) = 0; + virtual bool Delete(std::string_view uuid) = 0; virtual ~IUserDAO() = default; }; diff --git a/src/DAO/IUserTreatmentSchemesDAO.h b/src/DAO/IUserTreatmentSchemesDAO.h index a9664c0..36a332b 100644 --- a/src/DAO/IUserTreatmentSchemesDAO.h +++ b/src/DAO/IUserTreatmentSchemesDAO.h @@ -8,10 +8,10 @@ namespace uad { class IUserTreatmentSchemeDAO { public: - virtual std::vector FindByUserUUID(const std::string& login) = 0; + virtual std::vector FindByUserUUID(std::string_view login) = 0; virtual void CreateUserTreatmentScheme( - const std::string& user_login, + std::string_view user_login, const user_treatment_scheme_dto& dto ) = 0; diff --git a/src/DAO/MySQLDiariesDAO.cpp b/src/DAO/MySQLDiariesDAO.cpp index 30efd2d..658daf3 100644 --- a/src/DAO/MySQLDiariesDAO.cpp +++ b/src/DAO/MySQLDiariesDAO.cpp @@ -8,7 +8,7 @@ MySqlDiariesDAO::MySqlDiariesDAO(mysqlx::Session& session) : session_(session) { } -std::vector MySqlDiariesDAO::GetDiariesByUserUUID(const std::string& user_uuid) +std::vector MySqlDiariesDAO::GetDiariesByUserUUID(std::string_view user_uuid) { static const std::string query = R"( SELECT @@ -30,7 +30,7 @@ std::vector MySqlDiariesDAO::GetDiariesByUserUUID(const std::string& mysqlx::SqlResult result = session_ .sql(query) - .bind(user_uuid) + .bind(user_uuid.data()) .execute(); std::vector diaries; @@ -60,7 +60,7 @@ std::vector MySqlDiariesDAO::GetDiariesByUserUUID(const std::string& return diaries; } -void MySqlDiariesDAO::СreateDiary(const std::string& user_uuid, const diary_dto& dto) const +void MySqlDiariesDAO::СreateDiary(std::string_view user_uuid, const diary_dto& dto) const { auto stmt = session_.sql(R"( INSERT INTO `up_and_down`.`diaries` ( @@ -94,7 +94,7 @@ void MySqlDiariesDAO::СreateDiary(const std::string& user_uuid, const diary_dto stmt.bind( dto.uuid, - user_uuid, + user_uuid.data(), dto.time_ms, dto.mania_level, dto.depression_level, @@ -111,8 +111,8 @@ void MySqlDiariesDAO::СreateDiary(const std::string& user_uuid, const diary_dto } void MySqlDiariesDAO::UpdateDiary( - const std::string& user_uuid, - const std::string& diary_uuid, + std::string_view user_uuid, + std::string_view diary_uuid, const diary_dto& dto) const { auto stmt = session_.sql(R"( @@ -140,7 +140,7 @@ void MySqlDiariesDAO::UpdateDiary( dto.anxiety_level, dto.comment, dto.user_treatment_scheme_uuid, - dto.uuid + diary_uuid.data() ); auto res = stmt.execute(); @@ -151,15 +151,15 @@ void MySqlDiariesDAO::UpdateDiary( } void MySqlDiariesDAO::DeleteDiary( - const std::string& user_uuid, - const std::string& diary_uuid) const + std::string_view user_uuid, + std::string_view diary_uuid) const { auto stmt = session_.sql(R"( DELETE FROM `up_and_down`.`diaries` WHERE uuid = ? AND user_uuid = ? )"); - stmt.bind(diary_uuid, user_uuid); + stmt.bind(diary_uuid.data(), user_uuid.data()); auto res = stmt.execute(); diff --git a/src/DAO/MySQLDiariesDAO.h b/src/DAO/MySQLDiariesDAO.h index dda3f91..4926927 100644 --- a/src/DAO/MySQLDiariesDAO.h +++ b/src/DAO/MySQLDiariesDAO.h @@ -15,22 +15,22 @@ class MySqlDiariesDAO final : public IDiariesDAO public: explicit MySqlDiariesDAO(mysqlx::Session& session); - std::vector GetDiariesByUserUUID(const std::string& user_uuid) override; + std::vector GetDiariesByUserUUID(std::string_view user_uuid) override; void СreateDiary( - const std::string& user_uuid, + std::string_view user_uuid, const diary_dto& dto ) const override; void UpdateDiary( - const std::string& user_uuid, - const std::string& diary_uuid, + std::string_view user_uuid, + std::string_view diary_uuid, const diary_dto& dto ) const override; void DeleteDiary( - const std::string& user_uuid, - const std::string& diary_uuid + std::string_view user_uuid, + std::string_view diary_uuid ) const override; }; } diff --git a/src/DAO/MySQLUserDAO.cpp b/src/DAO/MySQLUserDAO.cpp index 0736382..4887c3e 100644 --- a/src/DAO/MySQLUserDAO.cpp +++ b/src/DAO/MySQLUserDAO.cpp @@ -31,23 +31,23 @@ string MySQLUserDAO::Create(const user_dto& created_user) return uuid_str; } -optional MySQLUserDAO::GetByUUID(const string& uuid) +optional MySQLUserDAO::GetByUUID(std::string_view uuid) { 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) + .bind(uuid.data()) .execute(); return GetSingleUserBySQLResult(std::move(sql_result)); } -optional MySQLUserDAO::GetByLogin(const string& login) +optional MySQLUserDAO::GetByLogin(std::string_view login) { 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) + mysqlx::SqlResult sql_result = session_ + .sql(sql_script) + .bind(login.data()) .execute(); return GetSingleUserBySQLResult(std::move(sql_result)); @@ -107,12 +107,12 @@ bool MySQLUserDAO::Update(const user_dto& u) return !!schema.getAffectedItemsCount(); } -bool MySQLUserDAO::Delete(const string& uuid) +bool MySQLUserDAO::Delete(std::string_view uuid) { static const string sql_script = "DELETE FROM `up_and_down`.`users` WHERE `uuid` = ?;"; auto schema = session_.sql(sql_script) - .bind(uuid) + .bind(uuid.data()) .execute(); return !!schema.getAffectedItemsCount(); diff --git a/src/DAO/MySQLUserDAO.h b/src/DAO/MySQLUserDAO.h index 4e5864a..165f704 100644 --- a/src/DAO/MySQLUserDAO.h +++ b/src/DAO/MySQLUserDAO.h @@ -13,15 +13,15 @@ public: std::string Create(const user_dto& created_user) override; - std::optional GetByUUID(const std::string& uuid) override; + std::optional GetByUUID(std::string_view uuid) override; - std::optional GetByLogin(const std::string& login) override; + std::optional GetByLogin(std::string_view login) override; std::pair> GetAll(size_t limit, size_t offset) override; bool Update(const user_dto& u) override; - bool Delete(const std::string& uuid) override; + bool Delete(std::string_view uuid) override; private: std::optional GetSingleUserBySQLResult(mysqlx::SqlResult&& sql_result); diff --git a/src/DAO/MySQLUserTreatmentSchemesDAO.cpp b/src/DAO/MySQLUserTreatmentSchemesDAO.cpp index b6fa68e..6d68db0 100644 --- a/src/DAO/MySQLUserTreatmentSchemesDAO.cpp +++ b/src/DAO/MySQLUserTreatmentSchemesDAO.cpp @@ -11,7 +11,7 @@ MySQLUserTreatmentSchemesDAO::MySQLUserTreatmentSchemesDAO(mysqlx::Session& sess } std::vector MySQLUserTreatmentSchemesDAO::FindByUserUUID( - const std::string& user_uuid) + std::string_view user_uuid) { static const std::string query = R"( SELECT @@ -30,7 +30,7 @@ std::vector MySQLUserTreatmentSchemesDAO::FindByUserU mysqlx::SqlResult result = session_ .sql(query) - .bind(user_uuid) + .bind(user_uuid.data()) .execute(); std::unordered_map scheme_map; @@ -69,7 +69,7 @@ std::vector MySQLUserTreatmentSchemesDAO::FindByUserU } void MySQLUserTreatmentSchemesDAO::CreateUserTreatmentScheme( - const std::string& user_uuid, + std::string_view user_uuid, const user_treatment_scheme_dto& dto) { session_.startTransaction(); @@ -85,7 +85,7 @@ void MySQLUserTreatmentSchemesDAO::CreateUserTreatmentScheme( )") .bind( dto.uuid, - user_uuid, + user_uuid.data(), dto.treatment_name, dto.instructions ) diff --git a/src/DAO/MySQLUserTreatmentSchemesDAO.h b/src/DAO/MySQLUserTreatmentSchemesDAO.h index a8802f1..e743af7 100644 --- a/src/DAO/MySQLUserTreatmentSchemesDAO.h +++ b/src/DAO/MySQLUserTreatmentSchemesDAO.h @@ -11,10 +11,10 @@ class MySQLUserTreatmentSchemesDAO : public IUserTreatmentSchemeDAO public: explicit MySQLUserTreatmentSchemesDAO(mysqlx::Session& session); - std::vector FindByUserUUID(const std::string& uuid) override; + std::vector FindByUserUUID(std::string_view uuid) override; void CreateUserTreatmentScheme( - const std::string& user_login, + std::string_view user_login, const user_treatment_scheme_dto& dto ) override; }; diff --git a/src/helpers/helpers.cpp b/src/helpers/helpers.cpp index dee82aa..07a5ce9 100644 --- a/src/helpers/helpers.cpp +++ b/src/helpers/helpers.cpp @@ -117,9 +117,9 @@ std::string ToHex(std::byte* src, size_t len) return ret; } -std::string HashPassword(const std::string& password) +std::string HashPassword(std::string_view password) { - size_t calculated_hash = std::hash{}(password); + size_t calculated_hash = std::hash{}(password); return ToHex((byte*)&calculated_hash, sizeof(calculated_hash)); } diff --git a/src/helpers/helpers.h b/src/helpers/helpers.h index e1def2f..625c549 100644 --- a/src/helpers/helpers.h +++ b/src/helpers/helpers.h @@ -12,7 +12,7 @@ void Fail(boost::beast::error_code ec, char const* what); std::string ToHex(std::byte* src, size_t len); -std::string HashPassword(const std::string& password); +std::string HashPassword(std::string_view password); std::string GenerateUUID();