From 71b50eaf1e10028b2a0119bc935671be2f7b405e Mon Sep 17 00:00:00 2001 From: Aotrix <9aotrix@protonmail.com> Date: Thu, 30 Jul 2026 18:00:58 +0200 Subject: Update main.cpp for battleNetApi --- battleNetApi/src/main.cpp | 46 ++++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) (limited to 'battleNetApi/src') 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 #include #include +#include #include class DownloadMethod { public: - virtual json download(const std::shared_ptr &iToken) = 0; + virtual nlohmann::json download(const std::shared_ptr &iToken) = 0; virtual ~DownloadMethod() = default; }; @@ -16,17 +17,17 @@ class DefaultDownloadMethod : public DownloadMethod { public: DefaultDownloadMethod() = default; ~DefaultDownloadMethod() = default; - json download(const std::shared_ptr &iToken) override { + nlohmann::json download(const std::shared_ptr &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 iDownloader) { mDownloader = std::move(iDownloader); } - json download(const std::shared_ptr &iToken) { + nlohmann::json download(const std::shared_ptr &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()); - aOutputJsonPath = "tests/output/list_of_cards.json"; - } else { - aCredentialsFilePath = argv[1]; - aDownloaderContext.setDownloadMethod( - std::make_unique()); - 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()}; + bnet::HearthstoneTokenBuilder aHearthstoneTokenBuilder(argv[1]); + std::ofstream aOutputJsonFile(argv[2]); + aOutputJsonFile + << aDownloaderContext.download(aHearthstoneTokenBuilder.buildToken().getToken()).dump(4) + << '\n'; return 0; } -- cgit v1.2.3