From 552017342ed077ec9a516b02ea4b6855a7c17007 Mon Sep 17 00:00:00 2001 From: Aotrix <9aotrix@protonmail.com> Date: Mon, 13 Jul 2026 00:23:36 +0200 Subject: Added test file for Token --- battleNetApi/include/hearthstoneTokenBuilder.hpp | 32 ++++++++++++++++-------- battleNetApi/include/token.hpp | 8 ++++-- 2 files changed, 27 insertions(+), 13 deletions(-) (limited to 'battleNetApi/include') diff --git a/battleNetApi/include/hearthstoneTokenBuilder.hpp b/battleNetApi/include/hearthstoneTokenBuilder.hpp index 488aff4..e946fe8 100644 --- a/battleNetApi/include/hearthstoneTokenBuilder.hpp +++ b/battleNetApi/include/hearthstoneTokenBuilder.hpp @@ -14,30 +14,40 @@ class HearthstoneTokenBuilder : TokenBuilder { private: std::shared_ptr mCurrentToken; bool mUpdateSourceFile{false}; - std::vector mJsonPaths; + std::vector _credentialJsonPaths; + [[nodiscard]] bool isUpdateSourceFileAllowed() const; - const bool hasExpired(json iToken) const; - static size_t curlCallbackStringOutput(void *iPtr, size_t iSize, - size_t iNmemb, + [[nodiscard]] + const bool hasExpired(json iTokenJson) const; + static size_t curlCallbackStringOutput(void *iPtr, size_t iSize, size_t iNmemb, std::string *iUserData); + [[nodiscard]] std::chrono::seconds getCurrentTime() const; - std::pair getTokenWithApi() const; + [[nodiscard]] + std::pair + getTokenWithApi(const std::string &iAgentJsonFilePath) const; + [[nodiscard]] std::string getTokenFromLocalFile() const; - void writeTokenToLocalFile( - const std::pair &iToken) const; + void writeTokenToLocalFile(const std::pair &iToken) const; public: HearthstoneTokenBuilder(const std::span &iJsonPaths); - HearthstoneTokenBuilder(const std::string &iJsonPath); - HearthstoneTokenBuilder &addJsonPath(const std::string &iJsonPath); - HearthstoneTokenBuilder &addJsonPaths(const std::string &iJsonPath); + template + HearthstoneTokenBuilder(CredentialJsonPaths... iCredentialJsonPaths) { + (_credentialJsonPaths.push_back(iCredentialJsonPaths), ...); + } + template + HearthstoneTokenBuilder &addCredentialJsonFiles(CredentialJsonPaths... iCredentialJsonPaths) { + (_credentialJsonPaths.push_back(iCredentialJsonPaths), ...); + } HearthstoneTokenBuilder &allowUpdateSourceFile(); /** * @return Create an access token to perform API requests. - * First, the cache files are checked. + * First, the cache files are checked. (Which ones?) * A new token is computed if the token lifetimes expired, * or if there is no token at all. */ HearthstoneTokenBuilder &buildToken() override; + [[nodiscard]] std::shared_ptr getToken() override; }; diff --git a/battleNetApi/include/token.hpp b/battleNetApi/include/token.hpp index cc909a8..8b9f95e 100644 --- a/battleNetApi/include/token.hpp +++ b/battleNetApi/include/token.hpp @@ -1,13 +1,17 @@ #pragma once +#include #include class Token { public: - explicit Token(const std::string &iTokenText); + explicit Token(const std::string &iTokenText, const std::chrono::seconds &iExpirationTime); std::string text() const; void setText(const std::string &iTokenText); + void setExpirationTime(const std::chrono::seconds &iExpirationTime); + bool isExpired(); private: - std::string mTokenText; //!< Token value + std::string _tokenText; + std::chrono::seconds _expirationTime; }; -- cgit v1.2.3