34 lines
No EOL
1.5 KiB
C++
34 lines
No EOL
1.5 KiB
C++
#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<nyanimed::meow::auth::api::ApiConfiguration>();
|
|
config->setBaseUrl(utility::conversions::to_string_t(m_baseUrl));
|
|
|
|
m_apiClient = std::make_shared<nyanimed::meow::auth::api::ApiClient>(config);
|
|
m_authApi = std::make_shared<nyanimed::meow::auth::api::AuthApi>(m_apiClient);
|
|
}
|
|
|
|
pplx::task<std::shared_ptr<nyanimed::meow::auth::model::GetImpersonationToken_200_response>>
|
|
nyanimed::AuthImpersonationClient::getImpersonationToken(int64_t userId) const {
|
|
auto request = std::make_shared<nyanimed::meow::auth::model::GetImpersonationToken_request>();
|
|
request->setUserId(userId);
|
|
//request->setExternalId(externalId);
|
|
|
|
std::map<utility::string_t, utility::string_t> headers;
|
|
headers[U("Authorization")] = U("Bearer ") + utility::conversions::to_string_t(m_authToken);
|
|
|
|
return m_authApi->getImpersonationToken(request, headers);
|
|
} |