diff options
| author | Aotrix <[email protected]> | 2025-07-06 11:27:52 +0200 |
|---|---|---|
| committer | Aotrix <[email protected]> | 2025-07-06 11:27:52 +0200 |
| commit | a01e968169344a2bb2278c55b42d7f0c2c3e1763 (patch) | |
| tree | 1e712f7e4f59e3e63324a2352b8a3d84f0c63f67 /src/postgresHandler.cpp | |
| parent | 43ef56e2417de30c693df878d1325b076e45ee39 (diff) | |
added card type handler
Diffstat (limited to 'src/postgresHandler.cpp')
| -rw-r--r-- | src/postgresHandler.cpp | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/src/postgresHandler.cpp b/src/postgresHandler.cpp index 9241214..4574f95 100644 --- a/src/postgresHandler.cpp +++ b/src/postgresHandler.cpp @@ -1,4 +1,5 @@ #include "postgresHandler.hpp" +#include "cardTypeHandlerInfo.hpp" #include "hearthstoneAPIHandler.hpp" #include <cctype> #include <cstddef> @@ -10,14 +11,6 @@ #define KEY_ID 1 -// TODO: create a list/array which contains CardTypeHandlerInfo struct objects -// and fill these info in a single function -struct CardTypeHandlerInfo { - std::string aCardType; - std::string aCardValueRegex; - std::function<const std::string(const std::string &)> aJSONToSQLConverter; -}; - const std::map<std::string, std::string> aCardValueTypeToRegex = { {"INT", "[0-9]+"}, {"STRING", "\"[^\"?]*\""}, @@ -131,7 +124,7 @@ add_single_card_to_database(const std::string &kCards, pqxx::work &aTransaction, } } -const std::regex keyValueJSONRegex() { +const std::regex regexKeyValueInJSON() { std::string aRegexString = "\"([^\"?]+)\":("; for (auto &[fieldName, regex] : aCardValueTypeToRegex) { aRegexString += "(" + regex + ")|"; @@ -155,7 +148,7 @@ endPosOfCardJSON(const std::string &kCardsPageJSON, void addCardsToDatabase(HearthstoneAPIHandler &aAPIIntermediate, pqxx::work &aTransaction, const std::string &kURLOfCardsPage) { - const std::regex aKeyValueJSONRegex = keyValueJSONRegex(); + const std::regex aRegexKeyValueInJSON = regexKeyValueInJSON(); const std::string &kCardsPageJSON = aAPIIntermediate.get_cards(kURLOfCardsPage); std::string::size_type aCardStartPos = startPosOfCardJSON(kCardsPageJSON); @@ -163,7 +156,7 @@ void addCardsToDatabase(HearthstoneAPIHandler &aAPIIntermediate, while (aCardStartPos != std::string::npos && aCardEndPos != std::string::npos) { add_single_card_to_database(kCardsPageJSON, aTransaction, - aKeyValueJSONRegex, aCardStartPos, + aRegexKeyValueInJSON, aCardStartPos, aCardEndPos); aCardStartPos = startPosOfCardJSON(kCardsPageJSON, aCardStartPos + 1); aCardEndPos = endPosOfCardJSON(kCardsPageJSON, aCardEndPos + 1); |
