summaryrefslogtreecommitdiff
path: root/subprojects/battleNetApi/include
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/battleNetApi/include')
-rw-r--r--subprojects/battleNetApi/include/apiUrl.hpp19
-rw-r--r--subprojects/battleNetApi/include/hearthstoneApi.hpp43
-rw-r--r--subprojects/battleNetApi/include/token.hpp25
3 files changed, 0 insertions, 87 deletions
diff --git a/subprojects/battleNetApi/include/apiUrl.hpp b/subprojects/battleNetApi/include/apiUrl.hpp
deleted file mode 100644
index 509b248..0000000
--- a/subprojects/battleNetApi/include/apiUrl.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-#include <string>
-#include <unordered_map>
-
-class ApiUrl {
- public:
- ApiUrl(const std::string &iContentType, const std::string &iRegion);
-
- void setRegion(const std::string &iRegion);
- void setLocale(const std::string &iLocale);
- void setGameMode(const std::string &iGameMode);
- void setPageSize(const std::string &iPageSize);
- std::string operator()() const;
-
- private:
- std::string mContentType;
- std::string mRegion;
- std::unordered_map<std::string, std::string> aParameters;
-};
diff --git a/subprojects/battleNetApi/include/hearthstoneApi.hpp b/subprojects/battleNetApi/include/hearthstoneApi.hpp
deleted file mode 100644
index c11acc7..0000000
--- a/subprojects/battleNetApi/include/hearthstoneApi.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#pragma once
-#include "token.hpp"
-#include <iostream>
-#include <regex>
-#include <string>
-
-class HearthstoneApi {
- public:
- HearthstoneApi(Token &&iToken);
- std::uint64_t numberOfCards(const std::string &iApiResponse) const;
-
- private:
- std::string authorizationHeader();
- std::string makeApiRequest(const std::string &iUrl) const;
- static size_t curlCallbackStringOutput(void *iContent, size_t iSize, size_t iNmemb, std::string *iS);
-
- /**
- * @brief
- * @param[in] iJsonContent The std::string which contains Json (Battle.net API response for instance)
- * @param[in] iKeyValueRegex The regex used to retrieve value from (key, value) pair
- * An example: "\"cardCount\":(\\d+)"
- */
- template <typename T> T valueInJson(const std::string &iJsonContent, const std::string &iKeyValueRegex) const {
- const std::regex iRegex{iKeyValueRegex};
- std::smatch aMatches;
- if (std::regex_search(iJsonContent, aMatches, iRegex)) {
- const std::string kValueString{aMatches[1].str()};
- T aValue;
- const auto kConversionStatus =
- std::from_chars(kValueString.data(), kValueString.data() + kValueString.size(), aValue);
- if (kConversionStatus.ec == std::errc{}) {
- return aValue;
- }
- }
- std::cerr << std::format("Unable to find value with regex: '{}'\n", iKeyValueRegex);
- return 0;
- }
-
- Token mToken;
- std::string mAuthorizationHeader; //<! Bearer authorization string for OAuth 2.0 header
-
- friend class HearthstoneApiMock;
-};
diff --git a/subprojects/battleNetApi/include/token.hpp b/subprojects/battleNetApi/include/token.hpp
deleted file mode 100644
index e2e3088..0000000
--- a/subprojects/battleNetApi/include/token.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <chrono>
-#include <string>
-
-class Token {
- public:
- Token(const std::string &iTokenFilePath, const std::string &iUsername, const std::string &iPassword);
- std::string toString() const;
-
- private:
- const std::string mFilePath; //!< Path to the token file
- const std::string mUsername; //!< Username for Battle.net API
- const std::string mPassword; //!< Password for Battle.net API
- const std::string mToken; //!< Token value
-
- std::string getValidToken() const;
- void refreshToken() const;
- void writeNewTokenToFile() const;
- void writeTokenToFile(const std::string &iToken) const;
- std::string getValidTokenWithApi() const;
- std::chrono::seconds getCurrentTime() const;
- std::string extractTokenWithRegex(const std::string &iText, const std::string &iRegex) const;
- static size_t curlCallbackStringOutput(void *iPtr, size_t iSize, size_t iNmemb, std::string *iUserData);
-
- friend class TokenTests;
-};