#pragma once #include #include #include #include namespace advss { class TwitchToken; struct RequestResult { int status = 0; OBSData data = nullptr; }; const char *GetClientID(); // These functions can cache the RequestResult for 10s RequestResult SendGetRequest(const TwitchToken &token, const std::string &uri, const std::string &path, const httplib::Params ¶ms = {}, bool useCache = false); RequestResult SendPostRequest(const TwitchToken &token, const std::string &uri, const std::string &path, const httplib::Params ¶ms, const OBSData &data, bool useCache = false); RequestResult SendPostRequest(const TwitchToken &token, const std::string &uri, const std::string &path, const httplib::Params ¶ms = {}, const std::string &data = "", bool useCache = false); RequestResult SendPutRequest(const TwitchToken &token, const std::string &uri, const std::string &path, const httplib::Params ¶ms, const OBSData &data, bool useCache = false); RequestResult SendPutRequest(const TwitchToken &token, const std::string &uri, const std::string &path, const httplib::Params ¶ms = {}, const std::string &data = "", bool useCache = false); RequestResult SendPatchRequest(const TwitchToken &token, const std::string &uri, const std::string &path, const httplib::Params ¶ms, const OBSData &data, bool useCache = false); RequestResult SendPatchRequest(const TwitchToken &token, const std::string &uri, const std::string &path, const httplib::Params ¶ms = {}, const std::string &data = "", bool useCache = false); RequestResult SendDeleteRequest(const TwitchToken &token, const std::string &uri, const std::string &path, const httplib::Params ¶ms = {}); // Helper functions to set temp var values void SetJsonTempVars(const std::string &jsonStr, std::function setVarFunc); void SetJsonTempVars(obs_data_t *data, std::function setVarFunc); } // namespace advss