Switched AccountManager to NetworkAccessManager

This commit is contained in:
Atlante45 2014-07-01 17:47:31 -07:00
parent 30644c750d
commit 7c3292a41b
2 changed files with 12 additions and 21 deletions

View file

@ -49,7 +49,6 @@ JSONCallbackParameters::JSONCallbackParameters() :
AccountManager::AccountManager() : AccountManager::AccountManager() :
_authURL(), _authURL(),
_networkAccessManager(NULL),
_pendingCallbackMap(), _pendingCallbackMap(),
_accountInfo() _accountInfo()
{ {
@ -153,9 +152,7 @@ void AccountManager::invokedRequest(const QString& path, QNetworkAccessManager::
const JSONCallbackParameters& callbackParams, const JSONCallbackParameters& callbackParams,
const QByteArray& dataByteArray, QHttpMultiPart* dataMultiPart) { const QByteArray& dataByteArray, QHttpMultiPart* dataMultiPart) {
if (!_networkAccessManager) { NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
_networkAccessManager = new QNetworkAccessManager(this);
}
if (hasValidAccessToken()) { if (hasValidAccessToken()) {
QNetworkRequest authenticatedRequest; QNetworkRequest authenticatedRequest;
@ -184,23 +181,23 @@ void AccountManager::invokedRequest(const QString& path, QNetworkAccessManager::
switch (operation) { switch (operation) {
case QNetworkAccessManager::GetOperation: case QNetworkAccessManager::GetOperation:
networkReply = _networkAccessManager->get(authenticatedRequest); networkReply = networkAccessManager.get(authenticatedRequest);
break; break;
case QNetworkAccessManager::PostOperation: case QNetworkAccessManager::PostOperation:
case QNetworkAccessManager::PutOperation: case QNetworkAccessManager::PutOperation:
if (dataMultiPart) { if (dataMultiPart) {
if (operation == QNetworkAccessManager::PostOperation) { if (operation == QNetworkAccessManager::PostOperation) {
networkReply = _networkAccessManager->post(authenticatedRequest, dataMultiPart); networkReply = networkAccessManager.post(authenticatedRequest, dataMultiPart);
} else { } else {
networkReply = _networkAccessManager->put(authenticatedRequest, dataMultiPart); networkReply = networkAccessManager.put(authenticatedRequest, dataMultiPart);
} }
dataMultiPart->setParent(networkReply); dataMultiPart->setParent(networkReply);
} else { } else {
authenticatedRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); authenticatedRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
if (operation == QNetworkAccessManager::PostOperation) { if (operation == QNetworkAccessManager::PostOperation) {
networkReply = _networkAccessManager->post(authenticatedRequest, dataByteArray); networkReply = networkAccessManager.post(authenticatedRequest, dataByteArray);
} else { } else {
networkReply = _networkAccessManager->put(authenticatedRequest, dataByteArray); networkReply = networkAccessManager.put(authenticatedRequest, dataByteArray);
} }
} }
@ -304,9 +301,7 @@ bool AccountManager::checkAndSignalForAccessToken() {
void AccountManager::requestAccessToken(const QString& login, const QString& password) { void AccountManager::requestAccessToken(const QString& login, const QString& password) {
if (!_networkAccessManager) { NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
_networkAccessManager = new QNetworkAccessManager(this);
}
QNetworkRequest request; QNetworkRequest request;
@ -324,7 +319,7 @@ void AccountManager::requestAccessToken(const QString& login, const QString& pas
request.setUrl(grantURL); request.setUrl(grantURL);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QNetworkReply* requestReply = _networkAccessManager->post(request, postData); QNetworkReply* requestReply = networkAccessManager.post(request, postData);
connect(requestReply, &QNetworkReply::finished, this, &AccountManager::requestAccessTokenFinished); connect(requestReply, &QNetworkReply::finished, this, &AccountManager::requestAccessTokenFinished);
connect(requestReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestAccessTokenError(QNetworkReply::NetworkError))); connect(requestReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestAccessTokenError(QNetworkReply::NetworkError)));
} }
@ -376,15 +371,13 @@ void AccountManager::requestAccessTokenError(QNetworkReply::NetworkError error)
} }
void AccountManager::requestProfile() { void AccountManager::requestProfile() {
if (!_networkAccessManager) { NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
_networkAccessManager = new QNetworkAccessManager(this);
}
QUrl profileURL = _authURL; QUrl profileURL = _authURL;
profileURL.setPath("/api/v1/users/profile"); profileURL.setPath("/api/v1/users/profile");
profileURL.setQuery("access_token=" + _accountInfo.getAccessToken().token); profileURL.setQuery("access_token=" + _accountInfo.getAccessToken().token);
QNetworkReply* profileReply = _networkAccessManager->get(QNetworkRequest(profileURL)); QNetworkReply* profileReply = networkAccessManager.get(QNetworkRequest(profileURL));
connect(profileReply, &QNetworkReply::finished, this, &AccountManager::requestProfileFinished); connect(profileReply, &QNetworkReply::finished, this, &AccountManager::requestProfileFinished);
connect(profileReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestProfileError(QNetworkReply::NetworkError))); connect(profileReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestProfileError(QNetworkReply::NetworkError)));
} }

View file

@ -15,9 +15,10 @@
#include <QtCore/QByteArray> #include <QtCore/QByteArray>
#include <QtCore/QObject> #include <QtCore/QObject>
#include <QtCore/QUrl> #include <QtCore/QUrl>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkReply> #include <QtNetwork/QNetworkReply>
#include "NetworkAccessManager.h"
#include "DataServerAccountInfo.h" #include "DataServerAccountInfo.h"
class JSONCallbackParameters { class JSONCallbackParameters {
@ -58,8 +59,6 @@ public:
const DataServerAccountInfo& getAccountInfo() const { return _accountInfo; } const DataServerAccountInfo& getAccountInfo() const { return _accountInfo; }
void destroy() { delete _networkAccessManager; }
public slots: public slots:
void requestAccessTokenFinished(); void requestAccessTokenFinished();
void requestProfileFinished(); void requestProfileFinished();
@ -93,7 +92,6 @@ private:
QHttpMultiPart* dataMultiPart); QHttpMultiPart* dataMultiPart);
QUrl _authURL; QUrl _authURL;
QNetworkAccessManager* _networkAccessManager;
QMap<QNetworkReply*, JSONCallbackParameters> _pendingCallbackMap; QMap<QNetworkReply*, JSONCallbackParameters> _pendingCallbackMap;
DataServerAccountInfo _accountInfo; DataServerAccountInfo _accountInfo;