summaryrefslogtreecommitdiff
path: root/bot/src/api/twitch/helix_client.hpp
blob: 399b1494daefcb56672514551d5e762cddb887f9 (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
#pragma once

#include <string>
#include <vector>

#include "schemas/stream.hpp"
#include "schemas/user.hpp"

namespace bot::api::twitch {
  class HelixClient {
    public:
      HelixClient(const std::string &token, const std::string &client_id);
      ~HelixClient() = default;

      std::vector<schemas::User> get_users(
          const std::vector<std::string> &logins) const;
      std::vector<schemas::User> get_users(const std::vector<int> &ids) const;
      std::vector<schemas::User> get_users(
          const std::vector<int> &ids,
          const std::vector<std::string> logins) const;

      std::vector<schemas::User> get_chatters(const int &broadcaster_id,
                                              const int &moderator_id) const;

      std::vector<schemas::Stream> get_streams(
          const std::vector<int> &ids) const;

    private:
      std::vector<schemas::User> get_users_by_query(
          const std::string &query) const;
      std::string token, client_id;
      const std::string base_url = "https://api.twitch.tv/helix";
  };
}