diff --git a/source/business_logic/controller/db/metrics_db/metrics_db_controller.cpp b/source/business_logic/controller/db/metrics_db/metrics_db_controller.cpp index 7993707..78290ed 100644 --- a/source/business_logic/controller/db/metrics_db/metrics_db_controller.cpp +++ b/source/business_logic/controller/db/metrics_db/metrics_db_controller.cpp @@ -31,14 +31,14 @@ AMetrics_DB_Controller::AMetrics_DB_Controller(const ADB_Config& db_cfg) : // --------------------------------------------------------------------------------------------------------------------- void AMetrics_DB_Controller::Set_Metrics(const SMetrics& metrics) { - Exec_Query(std::format(R"(INSERT INTO {} (start_req, profile_req, pr_game_req, math_game_req, help_req, about_project_req, definition_req, date, total_number_of_requests, antonym_req, synonym_req) VALUES ('{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}'))", Table_Name, metrics.Start_Request_Count, metrics.Profile_Request_Count, metrics.Pr_Game_Request_Count, metrics.Math_Game_Request_Count, metrics.Help_Request_Count, metrics.About_Project_Request_Count, metrics.Definition_Request_Count, metrics.Get_Current_Date(), metrics.Get_Total_Number_Of_Requests(), metrics.Antonym_Request_Count, metrics.Synonym_Request_Count)); + Exec_Query(std::format(R"(INSERT INTO {} (start_req, profile_req, pr_game_req, math_game_req, help_req, about_project_req, definition_req, date, total_number_of_requests, antonym_req, synonym_req, meme_req) VALUES ('{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}', '{}'))", Table_Name, metrics.Start_Request_Count, metrics.Profile_Request_Count, metrics.Pr_Game_Request_Count, metrics.Math_Game_Request_Count, metrics.Help_Request_Count, metrics.About_Project_Request_Count, metrics.Definition_Request_Count, metrics.Get_Current_Date(), metrics.Get_Total_Number_Of_Requests(), metrics.Antonym_Request_Count, metrics.Synonym_Request_Count, metrics.Meme_Request_Count)); } // --------------------------------------------------------------------------------------------------------------------- SMetrics AMetrics_DB_Controller::Get_Metrics(std::int64_t metrics_id) { - auto response{ Exec_Query(std::format(R"(SELECT start_req, profile_req, pr_game_req, math_game_req, help_req, about_project_req, definition_req, antonym_req, synonym_req, date FROM {} WHERE id = '{}')", Table_Name, metrics_id)) }; - return SMetrics{ response[0][0].as(), response[0][1].as(), response[0][2].as(), response[0][3].as(), response[0][4].as(), response[0][5].as(), response[0][6].as(), response[0][7].as(), response[0][8].as(), response[0][9].as() }; + auto response{ Exec_Query(std::format(R"(SELECT start_req, profile_req, pr_game_req, math_game_req, help_req, about_project_req, definition_req, antonym_req, synonym_req, meme_req, date FROM {} WHERE id = '{}')", Table_Name, metrics_id)) }; + return SMetrics{ response[0][0].as(), response[0][1].as(), response[0][2].as(), response[0][3].as(), response[0][4].as(), response[0][5].as(), response[0][6].as(), response[0][7].as(), response[0][8].as(), response[0][9].as(), response[0][10].as() }; } // --------------------------------------------------------------------------------------------------------------------- @@ -51,6 +51,6 @@ std::pair AMetrics_DB_Controller::Get_Metrics_Range( // --------------------------------------------------------------------------------------------------------------------- SMetrics AMetrics_DB_Controller::Get_Best_Metrics() { - auto response{ Exec_Query(std::format(R"(SELECT start_req, profile_req, pr_game_req, math_game_req, help_req, about_project_req, definition_req, antonym_req, synonym_req, date FROM {} WHERE total_number_of_requests = (SELECT MAX(total_number_of_requests) FROM {}))", Table_Name, Table_Name)) }; - return SMetrics{ response[0][0].as(), response[0][1].as(), response[0][2].as(), response[0][3].as(), response[0][4].as(), response[0][5].as(), response[0][6].as(), response[0][7].as(), response[0][8].as(),response[0][9].as() }; + auto response{ Exec_Query(std::format(R"(SELECT start_req, profile_req, pr_game_req, math_game_req, help_req, about_project_req, definition_req, antonym_req, synonym_req, meme_req, date FROM {} WHERE total_number_of_requests = (SELECT MAX(total_number_of_requests) FROM {}))", Table_Name, Table_Name)) }; + return SMetrics{ response[0][0].as(), response[0][1].as(), response[0][2].as(), response[0][3].as(), response[0][4].as(), response[0][5].as(), response[0][6].as(), response[0][7].as(), response[0][8].as(), response[0][9].as(), response[0][10].as() }; } \ No newline at end of file diff --git a/source/business_logic/model/metrics/metrics_model.cpp b/source/business_logic/model/metrics/metrics_model.cpp index ea0f6e2..4a85da8 100644 --- a/source/business_logic/model/metrics/metrics_model.cpp +++ b/source/business_logic/model/metrics/metrics_model.cpp @@ -25,12 +25,12 @@ // --------------------------------------------------------------------------------------------------------------------- SMetrics::SMetrics() : - Start_Request_Count{}, Profile_Request_Count{}, Pr_Game_Request_Count{}, Math_Game_Request_Count{}, Help_Request_Count{}, About_Project_Request_Count{}, Definition_Request_Count{}, Antonym_Request_Count{}, Synonym_Request_Count{}, Current_Date{} + Start_Request_Count{}, Profile_Request_Count{}, Pr_Game_Request_Count{}, Math_Game_Request_Count{}, Help_Request_Count{}, About_Project_Request_Count{}, Definition_Request_Count{}, Antonym_Request_Count{}, Synonym_Request_Count{}, Meme_Request_Count{}, Current_Date{} { } // --------------------------------------------------------------------------------------------------------------------- -SMetrics::SMetrics(std::int64_t start_request_count, std::int64_t profile_request_count, std::int64_t pr_game_request_count, std::int64_t math_game_request_count, std::int64_t help_request_count, std::int64_t about_project_request_count, std::int64_t definition_request_count, std::int64_t antonym_request_count, std::int64_t synonym_request_count, std::string current_date) : - Start_Request_Count{ start_request_count }, Profile_Request_Count{ profile_request_count }, Pr_Game_Request_Count{ pr_game_request_count }, Math_Game_Request_Count{ math_game_request_count }, Help_Request_Count{ help_request_count }, About_Project_Request_Count{ about_project_request_count }, Definition_Request_Count{ definition_request_count }, Antonym_Request_Count{ antonym_request_count }, Synonym_Request_Count{ synonym_request_count }, Current_Date{ std::move(current_date) } +SMetrics::SMetrics(std::int64_t start_request_count, std::int64_t profile_request_count, std::int64_t pr_game_request_count, std::int64_t math_game_request_count, std::int64_t help_request_count, std::int64_t about_project_request_count, std::int64_t definition_request_count, std::int64_t antonym_request_count, std::int64_t synonym_request_count, std::int64_t meme_request_count, std::string current_date) : + Start_Request_Count{ start_request_count }, Profile_Request_Count{ profile_request_count }, Pr_Game_Request_Count{ pr_game_request_count }, Math_Game_Request_Count{ math_game_request_count }, Help_Request_Count{ help_request_count }, About_Project_Request_Count{ about_project_request_count }, Definition_Request_Count{ definition_request_count }, Antonym_Request_Count{ antonym_request_count }, Synonym_Request_Count{ synonym_request_count }, Meme_Request_Count{ meme_request_count },Current_Date{ std::move(current_date) } { } // --------------------------------------------------------------------------------------------------------------------- @@ -49,7 +49,7 @@ const std::string& SMetrics::Get_Current_Date() const // --------------------------------------------------------------------------------------------------------------------- std::int64_t SMetrics::Get_Total_Number_Of_Requests() const { - return Start_Request_Count + Profile_Request_Count + Pr_Game_Request_Count + Math_Game_Request_Count + Help_Request_Count + About_Project_Request_Count + Definition_Request_Count + Antonym_Request_Count + Synonym_Request_Count; + return Start_Request_Count + Profile_Request_Count + Pr_Game_Request_Count + Math_Game_Request_Count + Help_Request_Count + About_Project_Request_Count + Definition_Request_Count + Antonym_Request_Count + Synonym_Request_Count + Meme_Request_Count; } // --------------------------------------------------------------------------------------------------------------------- @@ -64,5 +64,6 @@ void SMetrics::Clear() Definition_Request_Count = 0; Antonym_Request_Count = 0; Synonym_Request_Count = 0; + Meme_Request_Count = 0; Current_Date = " "; } \ No newline at end of file diff --git a/source/business_logic/model/metrics/metrics_model.hpp b/source/business_logic/model/metrics/metrics_model.hpp index 6c41e2a..80424dd 100644 --- a/source/business_logic/model/metrics/metrics_model.hpp +++ b/source/business_logic/model/metrics/metrics_model.hpp @@ -32,7 +32,7 @@ struct SMetrics { public: explicit SMetrics(); - [[maybe_unused]] explicit SMetrics(std::int64_t start_request_count, std::int64_t profile_request_count, std::int64_t pr_game_request_count, std::int64_t math_game_request_count, std::int64_t help_request_count, std::int64_t about_project_request_count, std::int64_t definition_request_count, std::int64_t antonym_request_count, std::int64_t synonym_request_count, std::string current_date); + [[maybe_unused]] explicit SMetrics(std::int64_t start_request_count, std::int64_t profile_request_count, std::int64_t pr_game_request_count, std::int64_t math_game_request_count, std::int64_t help_request_count, std::int64_t about_project_request_count, std::int64_t definition_request_count, std::int64_t antonym_request_count, std::int64_t synonym_request_count, std::int64_t meme_request_count, std::string current_date); ~SMetrics() = default; @@ -42,7 +42,6 @@ struct SMetrics [[nodiscard]] std::int64_t Get_Total_Number_Of_Requests() const; void Clear(); - // antonym - synonym public: std::int64_t Start_Request_Count; std::int64_t Profile_Request_Count; @@ -53,6 +52,7 @@ struct SMetrics std::int64_t Definition_Request_Count; std::int64_t Antonym_Request_Count; std::int64_t Synonym_Request_Count; + std::int64_t Meme_Request_Count; private: std::string Current_Date; diff --git a/source/view/handlers/message_handler/message_handler.cpp b/source/view/handlers/message_handler/message_handler.cpp index a4ec324..3ba2ffe 100644 --- a/source/view/handlers/message_handler/message_handler.cpp +++ b/source/view/handlers/message_handler/message_handler.cpp @@ -175,6 +175,9 @@ void AMessage_Handler::Bind_Commands() return; } + std::lock_guard locker(Mutex); + ++Metrics.Meme_Request_Count; + TG_Bot.getApi().sendMessage(message->chat->id, Meme_API_Controller.Get_Meme()); }); TG_Bot.getEvents().onCommand(SMessage_Commands::Metrics_Range.data(), [this](TgBot::Message::Ptr message) -> void diff --git a/source/view/texts/message_reply/message_reply.cpp b/source/view/texts/message_reply/message_reply.cpp index b62cc92..34ed3b6 100644 --- a/source/view/texts/message_reply/message_reply.cpp +++ b/source/view/texts/message_reply/message_reply.cpp @@ -98,7 +98,7 @@ std::string AMessage_Reply::Get_Metrics_Range_Msg(const std::pair