|
|
@ -30,10 +30,10 @@ constexpr std::array<const char, 1> API_VERSION{'1'};
|
|
|
|
constexpr std::size_t TIMEOUT_SECONDS = 30;
|
|
|
|
constexpr std::size_t TIMEOUT_SECONDS = 30;
|
|
|
|
|
|
|
|
|
|
|
|
struct Client::Impl {
|
|
|
|
struct Client::Impl {
|
|
|
|
Impl(std::string host, std::string username, std::string token)
|
|
|
|
Impl(std::string host_, std::string username_, std::string token_)
|
|
|
|
: host{std::move(host)}, username{std::move(username)}, token{std::move(token)} {
|
|
|
|
: host{std::move(host_)}, username{std::move(username_)}, token{std::move(token_)} {
|
|
|
|
std::scoped_lock lock{jwt_cache.mutex};
|
|
|
|
std::scoped_lock lock{jwt_cache.mutex};
|
|
|
|
if (this->username == jwt_cache.username && this->token == jwt_cache.token) {
|
|
|
|
if (username == jwt_cache.username && token == jwt_cache.token) {
|
|
|
|
jwt = jwt_cache.jwt;
|
|
|
|
jwt = jwt_cache.jwt;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -69,8 +69,8 @@ struct Client::Impl {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
WebResult GenericRequest(const std::string& method, const std::string& path,
|
|
|
|
WebResult GenericRequest(const std::string& method, const std::string& path,
|
|
|
|
const std::string& data, const std::string& accept,
|
|
|
|
const std::string& data, const std::string& accept,
|
|
|
|
const std::string& jwt = "", const std::string& username = "",
|
|
|
|
const std::string& jwt_ = "", const std::string& username_ = "",
|
|
|
|
const std::string& token = "") {
|
|
|
|
const std::string& token_ = "") {
|
|
|
|
if (cli == nullptr) {
|
|
|
|
if (cli == nullptr) {
|
|
|
|
cli = std::make_unique<httplib::Client>(host.c_str());
|
|
|
|
cli = std::make_unique<httplib::Client>(host.c_str());
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -85,14 +85,14 @@ struct Client::Impl {
|
|
|
|
cli->set_write_timeout(TIMEOUT_SECONDS);
|
|
|
|
cli->set_write_timeout(TIMEOUT_SECONDS);
|
|
|
|
|
|
|
|
|
|
|
|
httplib::Headers params;
|
|
|
|
httplib::Headers params;
|
|
|
|
if (!jwt.empty()) {
|
|
|
|
if (!jwt_.empty()) {
|
|
|
|
params = {
|
|
|
|
params = {
|
|
|
|
{std::string("Authorization"), fmt::format("Bearer {}", jwt)},
|
|
|
|
{std::string("Authorization"), fmt::format("Bearer {}", jwt_)},
|
|
|
|
};
|
|
|
|
};
|
|
|
|
} else if (!username.empty()) {
|
|
|
|
} else if (!username_.empty()) {
|
|
|
|
params = {
|
|
|
|
params = {
|
|
|
|
{std::string("x-username"), username},
|
|
|
|
{std::string("x-username"), username_},
|
|
|
|
{std::string("x-token"), token},
|
|
|
|
{std::string("x-token"), token_},
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|