summaryrefslogtreecommitdiff
path: root/battleNetApi/include/hearthstoneApi.hpp
blob: 2810204caecaba53c05060ae0485c1d9c1a5060c (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
#pragma once
#include "token.hpp"
#include <apiUrl.hpp>
#include <nlohmann/json.hpp>
#include <string>

namespace bnet {
using json = nlohmann::json;

class HearthstoneApi {
  public:
    static json makeApiRequest(const ApiUrl &iApiUrl, const std::string &iTokenText);
    static std::vector<json> makeApiRequest(const std::vector<ApiUrl> &iApiUrls,
                                            const std::string &iTokenText);
    static std::vector<json> makeApiRequest(const std::vector<std::string> &iUrls,
                                            const std::string &iTokenText);
    static json downloadCards(ApiUrl iApiUrl, const Token &iToken);

  private:
    static std::string authorizationHeader(const std::string &iTokenText);
    static size_t curlCallbackStringOutput(void *iContent, size_t iSize, size_t iNmemb,
                                           std::string *iS);

    std::string mAuthorizationHeader; //<! Bearer authorization string for OAuth 2.0 header

    friend class HearthstoneApiMock;
};
}; // namespace bnet