Skip to content
This repository has been archived by the owner on Jan 3, 2025. It is now read-only.

Added meme metric #39

Merged
merged 3 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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<std::int64_t>(), response[0][1].as<std::int64_t>(), response[0][2].as<std::int64_t>(), response[0][3].as<std::int64_t>(), response[0][4].as<std::int64_t>(), response[0][5].as<std::int64_t>(), response[0][6].as<std::int64_t>(), response[0][7].as<std::int64_t>(), response[0][8].as<std::int64_t>(), response[0][9].as<std::string>() };
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<std::int64_t>(), response[0][1].as<std::int64_t>(), response[0][2].as<std::int64_t>(), response[0][3].as<std::int64_t>(), response[0][4].as<std::int64_t>(), response[0][5].as<std::int64_t>(), response[0][6].as<std::int64_t>(), response[0][7].as<std::int64_t>(), response[0][8].as<std::int64_t>(), response[0][9].as<std::int64_t>(), response[0][10].as<std::string>() };
}

// ---------------------------------------------------------------------------------------------------------------------
Expand All @@ -51,6 +51,6 @@ std::pair<std::int64_t, std::int64_t> 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<std::int64_t>(), response[0][1].as<std::int64_t>(), response[0][2].as<std::int64_t>(), response[0][3].as<std::int64_t>(), response[0][4].as<std::int64_t>(), response[0][5].as<std::int64_t>(), response[0][6].as<std::int64_t>(), response[0][7].as<std::int64_t>(), response[0][8].as<std::int64_t>(),response[0][9].as<std::string>() };
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<std::int64_t>(), response[0][1].as<std::int64_t>(), response[0][2].as<std::int64_t>(), response[0][3].as<std::int64_t>(), response[0][4].as<std::int64_t>(), response[0][5].as<std::int64_t>(), response[0][6].as<std::int64_t>(), response[0][7].as<std::int64_t>(), response[0][8].as<std::int64_t>(), response[0][9].as<std::int64_t>(), response[0][10].as<std::string>() };
}
9 changes: 5 additions & 4 deletions source/business_logic/model/metrics/metrics_model.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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) }
{ }

// ---------------------------------------------------------------------------------------------------------------------
Expand All @@ -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;
}

// ---------------------------------------------------------------------------------------------------------------------
Expand All @@ -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 = " ";
}
4 changes: 2 additions & 2 deletions source/business_logic/model/metrics/metrics_model.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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;
Expand All @@ -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;
Expand Down
3 changes: 3 additions & 0 deletions source/view/handlers/message_handler/message_handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,9 @@ void AMessage_Handler::Bind_Commands()
return;
}

std::lock_guard<std::mutex> 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
Expand Down
2 changes: 1 addition & 1 deletion source/view/texts/message_reply/message_reply.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ std::string AMessage_Reply::Get_Metrics_Range_Msg(const std::pair<std::int64_t,
// ---------------------------------------------------------------------------------------------------------------------
std::string AMessage_Reply::Get_Metrics_Msg(const SMetrics& metrics)
{
return std::format("Метрики Arbuz-Bot\n\nДата: {}\n\nЗагальна кількість реквестів: {}\n\nКількість реквестів на команди:\nStart: {}\nProfile: {}\nProgrammer Game: {}\nMath Game: {}\nHelp: {}\nAbout Project: {}\nDefinition: {}\nSynonym: {}\nAntonym: {}", metrics.Get_Current_Date(), metrics.Get_Total_Number_Of_Requests(), 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.Synonym_Request_Count, metrics.Antonym_Request_Count);
return std::format("Метрики Arbuz-Bot\n\nДата: {}\n\nЗагальна кількість реквестів: {}\n\nКількість реквестів на команди:\nStart: {}\nProfile: {}\nProgrammer Game: {}\nMath Game: {}\nHelp: {}\nAbout Project: {}\nDefinition: {}\nSynonym: {}\nAntonym: {}\nMeme: {}", metrics.Get_Current_Date(), metrics.Get_Total_Number_Of_Requests(), 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.Synonym_Request_Count, metrics.Antonym_Request_Count, metrics.Meme_Request_Count);
}

// ---------------------------------------------------------------------------------------------------------------------
Expand Down
Loading