diff options
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); |
