summaryrefslogtreecommitdiff
path: root/subprojects/battleNetApi/src/apiUrl.cpp
diff options
context:
space:
mode:
authorAotrix <[email protected]>2025-11-09 18:14:41 +0100
committerAotrix <[email protected]>2025-11-09 18:14:41 +0100
commitea390f7ccf1abda93ebb80faa2bd8a79eb13c8c9 (patch)
tree4cb32e0ef223b2427a1fed79a3626c77b7eec39d /subprojects/battleNetApi/src/apiUrl.cpp
parent7c7c8b4aafe91f49a3448b822dd604253545307d (diff)
added ApiUrl class
Diffstat (limited to 'subprojects/battleNetApi/src/apiUrl.cpp')
-rw-r--r--subprojects/battleNetApi/src/apiUrl.cpp22
1 files changed, 22 insertions, 0 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;
+}