summaryrefslogtreecommitdiff
path: root/battleNetApi/src/hearthstoneApi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'battleNetApi/src/hearthstoneApi.cpp')
-rw-r--r--battleNetApi/src/hearthstoneApi.cpp42
1 files changed, 29 insertions, 13 deletions
diff --git a/battleNetApi/src/hearthstoneApi.cpp b/battleNetApi/src/hearthstoneApi.cpp
index 133f38d..1341f74 100644
--- a/battleNetApi/src/hearthstoneApi.cpp
+++ b/battleNetApi/src/hearthstoneApi.cpp
@@ -10,7 +10,9 @@ std::string HearthstoneApi::authorizationHeader(const std::string &iTokenText) {
return std::format("Authorization: Bearer {}", iTokenText);
}
-size_t HearthstoneApi::curlCallbackStringOutput(void *iContent, size_t iSize, size_t iNmemb, std::string *iS) {
+size_t HearthstoneApi::curlCallbackStringOutput(void *iContent, size_t iSize,
+ size_t iNmemb,
+ std::string *iS) {
const size_t kNewLength = iSize * iNmemb;
try {
iS->append(static_cast<char *>(iContent), kNewLength);
@@ -21,7 +23,8 @@ size_t HearthstoneApi::curlCallbackStringOutput(void *iContent, size_t iSize, si
return kNewLength;
}
-json HearthstoneApi::makeApiRequest(const ApiUrl &iApiUrl, const std::string &iTokenText) {
+json HearthstoneApi::makeApiRequest(const ApiUrl &iApiUrl,
+ const std::string &iTokenText) {
CURL *curl = curl_easy_init();
std::string aRequestOutput;
if (curl) {
@@ -31,7 +34,8 @@ json HearthstoneApi::makeApiRequest(const ApiUrl &iApiUrl, const std::string &iT
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curlCallbackStringOutput);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &aRequestOutput);
struct curl_slist *chunk = nullptr;
- chunk = curl_slist_append(chunk, authorizationHeader(iTokenText).c_str());
+ chunk =
+ curl_slist_append(chunk, authorizationHeader(iTokenText).c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
@@ -40,25 +44,34 @@ json HearthstoneApi::makeApiRequest(const ApiUrl &iApiUrl, const std::string &iT
return aOutputJson;
}
-std::vector<json> HearthstoneApi::makeApiRequest(const std::vector<ApiUrl> &iApiUrls, const std::string &iTokenText) {
+std::vector<json>
+HearthstoneApi::makeApiRequest(const std::vector<ApiUrl> &iApiUrls,
+ const std::string &iTokenText) {
std::vector<std::string> aApiUrls(iApiUrls.size());
- std::ranges::transform(iApiUrls, aApiUrls.begin(), [](const ApiUrl &iApiUrl) { return iApiUrl.text(); });
+ std::ranges::transform(
+ iApiUrls, aApiUrls.begin(),
+ [](const ApiUrl &iApiUrl) { return iApiUrl.text(); });
return makeApiRequest(aApiUrls, iTokenText);
}
-std::vector<json> HearthstoneApi::makeApiRequest(const std::vector<std::string> &iUrls, const std::string &iTokenText) {
+std::vector<json>
+HearthstoneApi::makeApiRequest(const std::vector<std::string> &iUrls,
+ const std::string &iTokenText) {
std::vector<std::string> aResponses(iUrls.size());
CURLM *curlm = curl_multi_init();
if (curlm) {
- for (std::vector<std::string>::size_type i{0}; i < aResponses.size(); ++i) {
+ for (std::vector<std::string>::size_type i{0}; i < aResponses.size();
+ ++i) {
CURL *curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, iUrls[i].c_str());
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
- curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curlCallbackStringOutput);
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,
+ curlCallbackStringOutput);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &(aResponses[i]));
struct curl_slist *chunk = nullptr;
- chunk = curl_slist_append(chunk, authorizationHeader(iTokenText).c_str());
+ chunk = curl_slist_append(chunk,
+ authorizationHeader(iTokenText).c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
curl_multi_add_handle(curlm, curl);
}
@@ -69,7 +82,8 @@ std::vector<json> HearthstoneApi::makeApiRequest(const std::vector<std::string>
int numfds = 0;
int res = curl_multi_wait(curlm, NULL, 0, kMaxWaitMs, &numfds);
if (res != CURLM_OK) {
- std::cerr << std::format("error: curl_multi_wait() returned {}\n", res);
+ std::cerr << std::format(
+ "error: curl_multi_wait() returned {}\n", res);
}
curl_multi_perform(curlm, &aStillRunning);
} while (aStillRunning);
@@ -84,15 +98,17 @@ std::vector<json> HearthstoneApi::makeApiRequest(const std::vector<std::string>
aHandle = aMessage->easy_handle;
aReturnCode = aMessage->data.result;
if (aReturnCode != CURLE_OK) {
- fprintf(stderr, "CURL error code: %d\n", aMessage->data.result);
+ fprintf(stderr, "CURL error code: %d\n",
+ aMessage->data.result);
continue;
}
curl_multi_remove_handle(curlm, aHandle);
curl_easy_cleanup(aHandle);
aHandle = nullptr;
} else {
- std::cerr << std::format("error: after curl_multi_info_read(), CURLMsg={}\n",
- static_cast<int>(aMessage->msg));
+ std::cerr << std::format(
+ "error: after curl_multi_info_read(), CURLMsg={}\n",
+ static_cast<int>(aMessage->msg));
}
}
curl_multi_cleanup(curlm);