summaryrefslogtreecommitdiff
path: root/subprojects/battleNetApi/src
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/battleNetApi/src')
-rw-r--r--subprojects/battleNetApi/src/apiUrl.cpp22
-rw-r--r--subprojects/battleNetApi/src/hearthstoneApi.cpp30
2 files changed, 31 insertions, 21 deletions
diff --git a/subprojects/battleNetApi/src/apiUrl.cpp b/subprojects/battleNetApi/src/apiUrl.cpp
new file mode 100644
index 0000000..89f7a5f
--- /dev/null
+++ b/subprojects/battleNetApi/src/apiUrl.cpp
@@ -0,0 +1,22 @@
+#include "apiUrl.hpp"
+#include <format>
+
+ApiUrl::ApiUrl(const std::string iContentType) : mContentType{iContentType} {}
+void ApiUrl::setLocale(const std::string iLocale) {
+ aParameters["locale"] = iLocale; //<! fr_FR
+}
+void ApiUrl::setGameMode(const std::string iGameMode) {
+ aParameters["gameMode"] = iGameMode; //<! constructed
+}
+std::string ApiUrl::operator()() {
+ std::string aFormattedParameters;
+ for (const auto &[key, value] : aParameters) {
+ aFormattedParameters += std::format("&{}={}", key, value);
+ }
+ if (not aFormattedParameters.empty()) {
+ aFormattedParameters[0] = '?';
+ }
+ aFormattedParameters =
+ std::format("https://eu.api.blizzard.com/hearthstone/{}/{}", mContentType, aFormattedParameters);
+ return aFormattedParameters;
+}
diff --git a/subprojects/battleNetApi/src/hearthstoneApi.cpp b/subprojects/battleNetApi/src/hearthstoneApi.cpp
index 9fda88c..b6eaf71 100644
--- a/subprojects/battleNetApi/src/hearthstoneApi.cpp
+++ b/subprojects/battleNetApi/src/hearthstoneApi.cpp
@@ -11,8 +11,15 @@ std::uint64_t HearthstoneApi::numberOfCards() {
std::string HearthstoneApi::authorizationHeader() { return std::format("Authorization: Bearer {}", mToken.toString()); }
-const std::string HearthstoneApi::apiUrl(const std::string &iParameters) const {
- return std::format("https://eu.api.blizzard.com/hearthstone/{}", iParameters);
+size_t HearthstoneApi::curlCallbackStringOutput(void *iContent, size_t iSize, size_t iNmemb, std::string *iS) {
+ const size_t kNewLength = iSize * iNmemb;
+ try {
+ iS->append(static_cast<char *>(iContent), kNewLength);
+ } catch (std::bad_alloc &e) {
+ // handle memory problem
+ return 0;
+ }
+ return kNewLength;
}
std::string HearthstoneApi::makeApiRequest(const std::string &iUrl) const {
@@ -32,22 +39,3 @@ std::string HearthstoneApi::makeApiRequest(const std::string &iUrl) const {
}
return request_output;
}
-
-const std::string HearthstoneApi::setOfCardsUrl(const std::string &iCardParameters) {
- return apiUrl(std::format("cards{}", iCardParameters));
-}
-
-size_t HearthstoneApi::curlCallbackStringOutput(void *iContent, size_t iSize, size_t iNmemb, std::string *iS) {
- const size_t kNewLength = iSize * iNmemb;
- try {
- iS->append(static_cast<char *>(iContent), kNewLength);
- } catch (std::bad_alloc &e) {
- // handle memory problem
- return 0;
- }
- return kNewLength;
-}
-
-std::string HearthstoneApi::cards(const std::string &iCardParameters) {
- return makeApiRequest(setOfCardsUrl(iCardParameters));
-}