summaryrefslogtreecommitdiff
path: root/subprojects/battleNetApi/src/apiUrl.cpp
blob: 89f7a5f25fd7f4bbdedca32ca6f89732071ad47c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "apiUrl.hpp"
#include <format>

ApiUrl::ApiUrl(const std::string iContentType) : mContentType{iContentType} {}
void ApiUrl::setLocale(const std::string iLocale) {
    aParameters["locale"] = iLocale; //<! fr_FR
}
void ApiUrl::setGameMode(const std::string iGameMode) {
    aParameters["gameMode"] = iGameMode; //<! constructed
}
std::string ApiUrl::operator()() {
    std::string aFormattedParameters;
    for (const auto &[key, value] : aParameters) {
        aFormattedParameters += std::format("&{}={}", key, value);
    }
    if (not aFormattedParameters.empty()) {
        aFormattedParameters[0] = '?';
    }
    aFormattedParameters =
        std::format("https://eu.api.blizzard.com/hearthstone/{}/{}", mContentType, aFormattedParameters);
    return aFormattedParameters;
}