void XMLHttpRequestClass::open(const QString& method, const QString& url, bool async, const QString& username, const QString& password) { if (_readyState == UNSENT) { _method = method; _url.setUrl(url); _async = async; if (url.toLower().left(METAVERSE_API_URL.length()) == METAVERSE_API_URL) { auto accountManager = DependencyManager::get<AccountManager>(); if (accountManager->hasValidAccessToken()) { QUrlQuery urlQuery(_url.query()); urlQuery.addQueryItem("access_token", accountManager->getAccountInfo().getAccessToken().token); _url.setQuery(urlQuery); } } if (!username.isEmpty()) { _url.setUserName(username); } if (!password.isEmpty()) { _url.setPassword(password); } _request.setUrl(_url); setReadyState(OPENED); } }
void XMLHttpRequestClass::open(const QString& method, const QString& url, bool async, const QString& username, const QString& password) { if (_readyState == UNSENT) { _method = method; _url.setUrl(url); _async = async; if (url.toLower().left(METAVERSE_API_URL.length()) == METAVERSE_API_URL) { auto accountManager = DependencyManager::get<AccountManager>(); if (accountManager->hasValidAccessToken()) { static const QString HTTP_AUTHORIZATION_HEADER = "Authorization"; QString bearerString = "Bearer " + accountManager->getAccountInfo().getAccessToken().token; _request.setRawHeader(HTTP_AUTHORIZATION_HEADER.toLocal8Bit(), bearerString.toLocal8Bit()); } } if (!username.isEmpty()) { _url.setUserName(username); } if (!password.isEmpty()) { _url.setPassword(password); } _request.setUrl(_url); setReadyState(OPENED); } }
QNetworkRequest createNetworkRequest() { QNetworkRequest request; QUrl requestURL = NetworkingConstants::METAVERSE_SERVER_URL(); requestURL.setPath(USER_ACTIVITY_URL); request.setUrl(requestURL); auto accountManager = DependencyManager::get<AccountManager>(); if (accountManager->hasValidAccessToken()) { request.setRawHeader(ACCESS_TOKEN_AUTHORIZATION_HEADER, accountManager->getAccountInfo().getAccessToken().authorizationHeaderValue()); } request.setRawHeader(METAVERSE_SESSION_ID_HEADER, uuidStringWithoutCurlyBraces(accountManager->getSessionID()).toLocal8Bit()); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); request.setPriority(QNetworkRequest::HighPriority); return request; }
void AccountManager::updateBalance() { if (hasValidAccessToken()) { // ask our auth endpoint for our balance JSONCallbackParameters callbackParameters; callbackParameters.jsonCallbackReceiver = &_accountInfo; callbackParameters.jsonCallbackMethod = "setBalanceFromJSON"; authenticatedRequest("/api/v1/wallets/mine", QNetworkAccessManager::GetOperation, callbackParameters); } }
QNetworkReply* OAuthNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest& req, QIODevice* outgoingData) { auto accountManager = DependencyManager::get<AccountManager>(); if (accountManager->hasValidAccessToken() && req.url().host() == NetworkingConstants::METAVERSE_SERVER_URL.host()) { QNetworkRequest authenticatedRequest(req); authenticatedRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true); authenticatedRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); authenticatedRequest.setRawHeader(ACCESS_TOKEN_AUTHORIZATION_HEADER, accountManager->getAccountInfo().getAccessToken().authorizationHeaderValue()); return QNetworkAccessManager::createRequest(op, authenticatedRequest, outgoingData); } else { return QNetworkAccessManager::createRequest(op, req, outgoingData); } }