From a0632d299b85dc4ef7c0e03898f38e6deca0edc2 Mon Sep 17 00:00:00 2001 From: Aotrix <9aotrix@protonmail.com> Date: Tue, 28 Apr 2026 03:49:41 +0200 Subject: add HearthstoneTokenBuilder class --- battleNetApi/src/main.cpp | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) (limited to 'battleNetApi/src/main.cpp') diff --git a/battleNetApi/src/main.cpp b/battleNetApi/src/main.cpp index ccab84c..dd93daa 100644 --- a/battleNetApi/src/main.cpp +++ b/battleNetApi/src/main.cpp @@ -1,12 +1,14 @@ #include "apiUrl.hpp" #include #include +#include #include -#include +#include +#include class DownloadMethod { public: - virtual json download() = 0; + virtual json download(const std::shared_ptr &iToken) = 0; virtual ~DownloadMethod() = default; }; @@ -14,16 +16,15 @@ class DefaultDownloadMethod : public DownloadMethod { public: DefaultDownloadMethod() = default; ~DefaultDownloadMethod() = default; - json download() override { + json download(const std::shared_ptr &iToken) override { const std::string kContentType{"cards"}; const std::string kRegion{"eu"}; ApiUrl aApiUrl(kContentType, kRegion); aApiUrl.setLocale("fr_FR"); aApiUrl.setGameMode("constructed"); - aApiUrl.setPageSize("100"); - std::optional aToken{TokenPool::availableToken()}; - if (aToken.has_value()) { - return HearthstoneApi::downloadCards(aApiUrl, aToken.value()); + aApiUrl.setPageSize(100); + if (iToken) { + return HearthstoneApi::downloadCards(aApiUrl, *iToken); } return json({}); }; @@ -37,9 +38,9 @@ class DownloaderContext { void setDownloadMethod(std::unique_ptr iDownloader) { mDownloader = std::move(iDownloader); } - json download() { + json download(const std::shared_ptr &iToken) { if (mDownloader) { - return mDownloader->download(); + return mDownloader->download(iToken); } else { std::cerr << "No download method available in DownloaderContext\n"; return json({}); @@ -52,20 +53,25 @@ class DownloaderContext { int main(int argc, char *argv[]) { DownloaderContext aDownloaderContext; + std::string aCredentialsFilePath; std::string aOutputJsonPath; if (argc < 3) { - TokenPool::feedTokenSource("tests/resources/credentials.json"); + aCredentialsFilePath = "tests/resources/credentials.json"; aDownloaderContext.setDownloadMethod( std::make_unique()); aOutputJsonPath = "tests/output/list_of_cards.json"; } else { - std::string aCredentialsFilePath{argv[1]}; - TokenPool::feedTokenSource(aCredentialsFilePath); + aCredentialsFilePath = argv[1]; aDownloaderContext.setDownloadMethod( std::make_unique()); aOutputJsonPath = argv[2]; } + HearthstoneTokenBuilder aHearthstoneTokenBuilder(aCredentialsFilePath); std::ofstream aOutputJsonFile(aOutputJsonPath); - aOutputJsonFile << aDownloaderContext.download().dump(4) << '\n'; + aOutputJsonFile << aDownloaderContext + .download( + aHearthstoneTokenBuilder.buildToken().getToken()) + .dump(4) + << '\n'; return 0; } -- cgit v1.2.3