summaryrefslogtreecommitdiff
path: root/battleNetApi/src/main.cpp
diff options
context:
space:
mode:
authorAotrix <[email protected]>2026-04-28 03:49:41 +0200
committerAotrix <[email protected]>2026-04-28 03:49:41 +0200
commita0632d299b85dc4ef7c0e03898f38e6deca0edc2 (patch)
treecc83712ca644e8b5d1b9e1c0c49bdbdd8475d0a9 /battleNetApi/src/main.cpp
parent5582e994d39b16a6d61f05b13e78c30f4bac5d84 (diff)
add HearthstoneTokenBuilder class
Diffstat (limited to 'battleNetApi/src/main.cpp')
-rw-r--r--battleNetApi/src/main.cpp32
1 files changed, 19 insertions, 13 deletions
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 <fstream>
#include <hearthstoneApi.hpp>
+#include <hearthstoneTokenBuilder.hpp>
#include <iostream>
-#include <tokenPool.hpp>
+#include <memory>
+#include <tokenBuilder.hpp>
class DownloadMethod {
public:
- virtual json download() = 0;
+ virtual json download(const std::shared_ptr<Token> &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<Token> &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<Token> 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<DownloadMethod> iDownloader) {
mDownloader = std::move(iDownloader);
}
- json download() {
+ json download(const std::shared_ptr<Token> &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<DefaultDownloadMethod>());
aOutputJsonPath = "tests/output/list_of_cards.json";
} else {
- std::string aCredentialsFilePath{argv[1]};
- TokenPool::feedTokenSource(aCredentialsFilePath);
+ aCredentialsFilePath = argv[1];
aDownloaderContext.setDownloadMethod(
std::make_unique<DefaultDownloadMethod>());
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;
}