summaryrefslogtreecommitdiff
path: root/battleNetApi/src/main.cpp
diff options
context:
space:
mode:
authorAotrix <[email protected]>2026-07-30 18:00:58 +0200
committerAotrix <[email protected]>2026-07-30 18:00:58 +0200
commit71b50eaf1e10028b2a0119bc935671be2f7b405e (patch)
tree2fa6d967f87bd61a867f419f6f795a9ed3bb3806 /battleNetApi/src/main.cpp
parent99421df7033148e6abb4e9f7a4d5d43f5cbd2ab4 (diff)
Update main.cpp for battleNetApi
Diffstat (limited to 'battleNetApi/src/main.cpp')
-rw-r--r--battleNetApi/src/main.cpp46
1 files changed, 18 insertions, 28 deletions
diff --git a/battleNetApi/src/main.cpp b/battleNetApi/src/main.cpp
index dd93daa..64fa935 100644
--- a/battleNetApi/src/main.cpp
+++ b/battleNetApi/src/main.cpp
@@ -4,11 +4,12 @@
#include <hearthstoneTokenBuilder.hpp>
#include <iostream>
#include <memory>
+#include <stdexcept>
#include <tokenBuilder.hpp>
class DownloadMethod {
public:
- virtual json download(const std::shared_ptr<Token> &iToken) = 0;
+ virtual nlohmann::json download(const std::shared_ptr<bnet::Token> &iToken) = 0;
virtual ~DownloadMethod() = default;
};
@@ -16,17 +17,17 @@ class DefaultDownloadMethod : public DownloadMethod {
public:
DefaultDownloadMethod() = default;
~DefaultDownloadMethod() = default;
- json download(const std::shared_ptr<Token> &iToken) override {
+ nlohmann::json download(const std::shared_ptr<bnet::Token> &iToken) override {
const std::string kContentType{"cards"};
const std::string kRegion{"eu"};
- ApiUrl aApiUrl(kContentType, kRegion);
+ bnet::ApiUrl aApiUrl(kContentType, kRegion);
aApiUrl.setLocale("fr_FR");
- aApiUrl.setGameMode("constructed");
+ aApiUrl.setGameMode(bnet::GameMode::constructed);
aApiUrl.setPageSize(100);
if (iToken) {
- return HearthstoneApi::downloadCards(aApiUrl, *iToken);
+ return bnet::HearthstoneApi::downloadCards(aApiUrl, *iToken);
}
- return json({});
+ return nlohmann::json({});
};
};
@@ -38,12 +39,12 @@ class DownloaderContext {
void setDownloadMethod(std::unique_ptr<DownloadMethod> iDownloader) {
mDownloader = std::move(iDownloader);
}
- json download(const std::shared_ptr<Token> &iToken) {
+ nlohmann::json download(const std::shared_ptr<bnet::Token> &iToken) {
if (mDownloader) {
return mDownloader->download(iToken);
} else {
std::cerr << "No download method available in DownloaderContext\n";
- return json({});
+ return nlohmann::json({});
}
}
@@ -52,26 +53,15 @@ class DownloaderContext {
};
int main(int argc, char *argv[]) {
- DownloaderContext aDownloaderContext;
- std::string aCredentialsFilePath;
- std::string aOutputJsonPath;
- if (argc < 3) {
- aCredentialsFilePath = "tests/resources/credentials.json";
- aDownloaderContext.setDownloadMethod(
- std::make_unique<DefaultDownloadMethod>());
- aOutputJsonPath = "tests/output/list_of_cards.json";
- } else {
- aCredentialsFilePath = argv[1];
- aDownloaderContext.setDownloadMethod(
- std::make_unique<DefaultDownloadMethod>());
- aOutputJsonPath = argv[2];
+ if (argc != 3) {
+ throw std::invalid_argument(
+ "/path/to/executable /path/to/credentials.json /path/to/output_file.json");
}
- HearthstoneTokenBuilder aHearthstoneTokenBuilder(aCredentialsFilePath);
- std::ofstream aOutputJsonFile(aOutputJsonPath);
- aOutputJsonFile << aDownloaderContext
- .download(
- aHearthstoneTokenBuilder.buildToken().getToken())
- .dump(4)
- << '\n';
+ DownloaderContext aDownloaderContext{std::make_unique<DefaultDownloadMethod>()};
+ bnet::HearthstoneTokenBuilder aHearthstoneTokenBuilder(argv[1]);
+ std::ofstream aOutputJsonFile(argv[2]);
+ aOutputJsonFile
+ << aDownloaderContext.download(aHearthstoneTokenBuilder.buildToken().getToken()).dump(4)
+ << '\n';
return 0;
}