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

Commit

Permalink
Merge pull request #39 from The-B1T-Foundation/added_meme_api
Browse files Browse the repository at this point in the history
Added meme metric
  • Loading branch information
b1tflyyyy authored May 7, 2024
2 parents 56524c6 + 9d654f8 commit 9d7c78a
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 12 deletions.
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

0 comments on commit 9d7c78a

Please sign in to comment.