blob: fcd84c02daa51ddeb5d6d0a12d55b5a6f4850ca9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#pragma once
#include "token.hpp"
#include <chrono>
#include <string>
class HearthstoneApi {
public:
HearthstoneApi();
std::string getCards(const std::string &t_card_parameters);
friend class HearthstoneApiTests;
private:
/**
* @brief Get a valid token to call Battle.net API
* @return A valid token
*/
std::string getValidTokenWithApi() const;
static size_t curlCallbackStringOutput(void *t_contents, size_t t_size, size_t t_nmemb, std::string *t_s);
std::chrono::seconds getCurrentTime() const;
std::string extractStringWithRegex(const std::string &t_str, const std::string t_regex) const;
void writeTokenToFile(const std::string &iToken) const;
void writeNewTokenToFile() const;
void refreshToken();
std::string getValidToken();
std::string generateRequestHeader();
const std::string getUrl(const std::string &t_parameters);
const std::string getSetOfCardsUrl(const std::string &t_card_parameters);
std::string makeApiRequest(const char *t_url, const char *t_header);
std::string makeApiRequest(const std::string &t_url, const std::string &t_header);
// TODO: add Token object
// Token mToken;
std::string mTokenFilePath;
std::string mToken;
std::string m_header;
};
|