#include "AuthImpersonation.hpp" nyanimed::AuthImpersonationClient::AuthImpersonationClient() { const char* baseUrlEnv = std::getenv("NYANIMEDBAUTHURL"); const char* tokenEnv = std::getenv("NYANIMEDBAUTHTOKEN"); if (!baseUrlEnv || std::string(baseUrlEnv).empty()) { throw std::runtime_error("Missing required environment variable: NYANIMEDBAUTHURL"); } if (!tokenEnv || std::string(tokenEnv).empty()) { throw std::runtime_error("Missing required environment variable: NYANIMEDBAUTHTOKEN"); } m_baseUrl = baseUrlEnv; m_authToken = tokenEnv; auto config = std::make_shared(); config->setBaseUrl(utility::conversions::to_string_t(m_baseUrl)); m_apiClient = std::make_shared(config); m_authApi = std::make_shared(m_apiClient); } pplx::task> nyanimed::AuthImpersonationClient::getImpersonationToken(int64_t userId) const { auto request = std::make_shared(); request->setUserId(userId); //request->setExternalId(externalId); std::map headers; headers[U("Authorization")] = U("Bearer ") + utility::conversions::to_string_t(m_authToken); return m_authApi->getImpersonationToken(request, headers); }