summaryrefslogtreecommitdiff
path: root/subprojects/battleNetApi/include/hearthstoneApi.hpp
blob: 6b3bbe5d1bf7adef15db7c2fd210868d95e7bb92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once
#include "token.hpp"
#include <string>

class HearthstoneApi {
  public:
    HearthstoneApi(Token &&iToken);
    std::uint64_t numberOfCards();
    std::string getCards(const std::string &t_card_parameters);

  private:
    std::string authorizationHeader();
    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);
    std::string makeApiRequest(const std::string &t_url);
    static size_t curlCallbackStringOutput(void *t_contents, size_t t_size, size_t t_nmemb, std::string *t_s);

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

    friend class HearthstoneApiMock;
};