From 80e171532f341965a1e2600d331a7b0ab5014456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Sat, 17 Jan 2026 11:33:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=B0=D0=B7=D0=B0=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D1=80=D1=83=D1=87=D0=BA=D0=B8=20GetUserDiariesExecutor.h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DAO/IUserTreatmentSchemesDAO.h | 2 +- src/DAO/MySQLUserTreatmentSchemesDAO.cpp | 13 +++-- src/DAO/MySQLUserTreatmentSchemesDAO.h | 2 +- .../GetUserTreatmentSchemeExecutor.h | 52 +------------------ 4 files changed, 11 insertions(+), 58 deletions(-) diff --git a/src/DAO/IUserTreatmentSchemesDAO.h b/src/DAO/IUserTreatmentSchemesDAO.h index 55124a7..0435ed9 100644 --- a/src/DAO/IUserTreatmentSchemesDAO.h +++ b/src/DAO/IUserTreatmentSchemesDAO.h @@ -8,7 +8,7 @@ namespace uad { class IUserTreatmentSchemeDAO { public: - virtual std::vector FindByUserLogin(const std::string& login) = 0; + virtual std::vector FindByUserUUID(const std::string& login) = 0; virtual ~IUserTreatmentSchemeDAO() = default; }; diff --git a/src/DAO/MySQLUserTreatmentSchemesDAO.cpp b/src/DAO/MySQLUserTreatmentSchemesDAO.cpp index 6661c59..6090cd5 100644 --- a/src/DAO/MySQLUserTreatmentSchemesDAO.cpp +++ b/src/DAO/MySQLUserTreatmentSchemesDAO.cpp @@ -10,8 +10,8 @@ MySQLUserTreatmentSchemesDAO::MySQLUserTreatmentSchemesDAO(mysqlx::Session& sess { } -std::vector MySQLUserTreatmentSchemesDAO::FindByUserLogin( - const std::string& login) +std::vector MySQLUserTreatmentSchemesDAO::FindByUserUUID( + const std::string& user_uuid) { static const std::string query = R"( SELECT @@ -24,11 +24,14 @@ std::vector MySQLUserTreatmentSchemesDAO::FindByUserL ON uts.user_uuid = u.uuid LEFT JOIN up_and_down.treatment_schemes ts ON ts.user_treatment_schemes_uuid = uts.uuid - WHERE u.login = ? + WHERE u.uuid = ? ORDER BY uts.uuid )"; - mysqlx::SqlResult result = session_.sql(query).bind(login).execute(); + mysqlx::SqlResult result = session_ + .sql(query) + .bind(user_uuid) + .execute(); std::unordered_map scheme_map; @@ -62,6 +65,6 @@ std::vector MySQLUserTreatmentSchemesDAO::FindByUserL schemes.push_back(std::move(dto)); } - return schemes; + return std::move(schemes); } } // uad diff --git a/src/DAO/MySQLUserTreatmentSchemesDAO.h b/src/DAO/MySQLUserTreatmentSchemesDAO.h index 23849b0..e96ad43 100644 --- a/src/DAO/MySQLUserTreatmentSchemesDAO.h +++ b/src/DAO/MySQLUserTreatmentSchemesDAO.h @@ -11,6 +11,6 @@ class MySQLUserTreatmentSchemesDAO : public IUserTreatmentSchemeDAO public: explicit MySQLUserTreatmentSchemesDAO(mysqlx::Session& session); - std::vector FindByUserLogin(const std::string& login) override; + std::vector FindByUserUUID(const std::string& uuid) override; }; } // uad diff --git a/src/endpoints_handlers/GetUserTreatmentSchemeExecutor.h b/src/endpoints_handlers/GetUserTreatmentSchemeExecutor.h index 59a77e6..b100916 100644 --- a/src/endpoints_handlers/GetUserTreatmentSchemeExecutor.h +++ b/src/endpoints_handlers/GetUserTreatmentSchemeExecutor.h @@ -65,57 +65,7 @@ public: std::string_view user_login_ref = auth_dao_->GetUUID(auth_token); const std::string user_uuid{user_login_ref.begin(), user_login_ref.end()}; - static const std::string query = R"( - SELECT - uts.uuid, - uts.treatment_name, - uts.instructions, - ts.medication_uuid - FROM up_and_down.users u - JOIN up_and_down.user_treatment_schemes uts - ON uts.user_uuid = u.uuid - LEFT JOIN up_and_down.treatment_schemes ts - ON ts.user_treatment_schemes_uuid = uts.uuid - WHERE u.uuid = ? - ORDER BY uts.uuid - )"; - - mysqlx::SqlResult result = session_ - .sql(query) - .bind(user_uuid) - .execute(); - - std::unordered_map scheme_map; - - for (const mysqlx::Row& row : result) - { - const std::string scheme_uuid = row[0].get(); - - if (scheme_map.find(scheme_uuid) == scheme_map.end()) - { - user_treatment_scheme_dto dto; - dto.uuid = scheme_uuid; - dto.treatment_name = row[1].isNull() ? "" : row[1].get(); - dto.instructions = row[2].isNull() ? "" : row[2].get(); - - scheme_map.emplace(scheme_uuid, std::move(dto)); - } - - if (!row[3].isNull()) - { - scheme_map[scheme_uuid] - .medication_uuids - .push_back(row[3].get()); - } - } - - std::vector schemes; - schemes.reserve(scheme_map.size()); - - for (auto& [_, dto] : scheme_map) - { - schemes.push_back(std::move(dto)); - } + std::vector schemes = user_treatment_scheme_dao_->FindByUserUUID(user_uuid); http::response res{http::status::ok, req.version()}; value response_body;