diff --git a/client/amnezia_application.cpp b/client/amnezia_application.cpp index fa947d292..1632835ce 100644 --- a/client/amnezia_application.cpp +++ b/client/amnezia_application.cpp @@ -364,9 +364,9 @@ void AmneziaApplication::initControllers() m_systemController.reset(new SystemController(m_settings)); m_engine->rootContext()->setContextProperty("SystemController", m_systemController.get()); - m_cloudController.reset(new CloudController(m_serversModel, m_containersModel)); - m_engine->rootContext()->setContextProperty("CloudController", m_cloudController.get()); + m_cloudController.reset(new ApiController(m_serversModel, m_containersModel)); + m_engine->rootContext()->setContextProperty("ApiController", m_cloudController.get()); - connect(m_cloudController.get(), &CloudController::serverConfigUpdated, this, + connect(m_cloudController.get(), &ApiController::serverConfigUpdated, this, [this]() { m_containersModel->setCurrentlyProcessedServerIndex(m_serversModel->getDefaultServerIndex()); }); } diff --git a/client/amnezia_application.h b/client/amnezia_application.h index b82bb9bbd..a66b42c81 100644 --- a/client/amnezia_application.h +++ b/client/amnezia_application.h @@ -24,7 +24,7 @@ #include "ui/controllers/settingsController.h" #include "ui/controllers/sitesController.h" #include "ui/controllers/systemController.h" -#include "ui/controllers/cloudController.h" +#include "ui/controllers/apiController.h" #include "ui/models/containers_model.h" #include "ui/models/languageModel.h" #include "ui/models/protocols/cloakConfigModel.h" @@ -119,7 +119,7 @@ private: QScopedPointer m_settingsController; QScopedPointer m_sitesController; QScopedPointer m_systemController; - QScopedPointer m_cloudController; + QScopedPointer m_cloudController; }; #endif // AMNEZIA_APPLICATION_H diff --git a/client/ui/controllers/cloudController.cpp b/client/ui/controllers/apiController.cpp similarity index 79% rename from client/ui/controllers/cloudController.cpp rename to client/ui/controllers/apiController.cpp index 321296ed1..d0c440df0 100644 --- a/client/ui/controllers/cloudController.cpp +++ b/client/ui/controllers/apiController.cpp @@ -1,13 +1,15 @@ -#include "cloudController.h" +#include "apiController.h" +#include #include #include -#include #include "configurators/openvpn_configurator.h" -namespace { - namespace configKey { +namespace +{ + namespace configKey + { constexpr char cloak[] = "cloak"; constexpr char apiEdnpoint[] = "api_endpoint"; @@ -18,13 +20,13 @@ namespace { } } -CloudController::CloudController(const QSharedPointer &serversModel, - const QSharedPointer &containersModel, QObject *parent) +ApiController::ApiController(const QSharedPointer &serversModel, + const QSharedPointer &containersModel, QObject *parent) : QObject(parent), m_serversModel(serversModel), m_containersModel(containersModel) { } -QString CloudController::genPublicKey(const QString &protocol) +QString ApiController::genPublicKey(const QString &protocol) { if (protocol == configKey::cloak) { return "."; @@ -32,7 +34,7 @@ QString CloudController::genPublicKey(const QString &protocol) return QString(); } -QString CloudController::genCertificateRequest(const QString &protocol) +QString ApiController::genCertificateRequest(const QString &protocol) { if (protocol == configKey::cloak) { m_certRequest = OpenVpnConfigurator::createCertRequest(); @@ -41,7 +43,7 @@ QString CloudController::genCertificateRequest(const QString &protocol) return QString(); } -void CloudController::processCloudConfig(const QString &protocol, QString &config) +void ApiController::processCloudConfig(const QString &protocol, QString &config) { if (protocol == configKey::cloak) { config.replace("", "\n"); @@ -51,7 +53,7 @@ void CloudController::processCloudConfig(const QString &protocol, QString &confi return; } -bool CloudController::updateServerConfigFromCloud() +bool ApiController::updateServerConfigFromApi() { auto serverConfig = m_serversModel->getDefaultServerConfig(); @@ -62,7 +64,8 @@ bool CloudController::updateServerConfigFromCloud() QNetworkRequest request; request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); - request.setRawHeader("Authorization", "Api-Key " + serverConfig.value(configKey::accessToken).toString().toUtf8()); + request.setRawHeader("Authorization", + "Api-Key " + serverConfig.value(configKey::accessToken).toString().toUtf8()); QString endpoint = serverConfig.value(configKey::apiEdnpoint).toString(); request.setUrl(endpoint.replace("https", "http")); // todo remove @@ -83,12 +86,13 @@ bool CloudController::updateServerConfigFromCloud() QObject::connect(reply.get(), &QNetworkReply::finished, &wait, &QEventLoop::quit); wait.exec(); - if(reply->error() == QNetworkReply::NoError){ + if (reply->error() == QNetworkReply::NoError) { QString contents = QString::fromUtf8(reply->readAll()); auto data = QJsonDocument::fromJson(contents.toUtf8()).object().value(config_key::config).toString(); data.replace("vpn://", ""); - QByteArray ba = QByteArray::fromBase64(data.toUtf8(), QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals); + QByteArray ba = QByteArray::fromBase64(data.toUtf8(), + QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals); QByteArray ba_uncompressed = qUncompress(ba); if (!ba_uncompressed.isEmpty()) { @@ -108,16 +112,15 @@ bool CloudController::updateServerConfigFromCloud() serverConfig.insert(config_key::defaultContainer, cloudConfig.value(config_key::defaultContainer)); m_serversModel->editServer(serverConfig); emit serverConfigUpdated(); - } else{ + } else { QString err = reply->errorString(); - qDebug() << QString::fromUtf8(reply->readAll());; + qDebug() << QString::fromUtf8(reply->readAll()); //todo remove debug output qDebug() << reply->error(); qDebug() << err; qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); emit errorOccurred(tr("Error when retrieving configuration from cloud server")); return false; } - } return true; diff --git a/client/ui/controllers/cloudController.h b/client/ui/controllers/apiController.h similarity index 52% rename from client/ui/controllers/cloudController.h rename to client/ui/controllers/apiController.h index aaaed18e5..5917f70fb 100644 --- a/client/ui/controllers/cloudController.h +++ b/client/ui/controllers/apiController.h @@ -1,33 +1,22 @@ -#ifndef CLOUDCONTROLLER_H -#define CLOUDCONTROLLER_H +#ifndef APICONTROLLER_H +#define APICONTROLLER_H #include +#include "configurators/openvpn_configurator.h" #include "ui/models/containers_model.h" #include "ui/models/servers_model.h" -#include "configurators/openvpn_configurator.h" -class CloudController : public QObject +class ApiController : public QObject { Q_OBJECT - enum ServiceTypeId - { - AmneziaFreeRuWG = 0, - AmneziaFreeRuCloak, - AmneziaFreeRuAWG, - AmneziaFreeRuReverseWG, - AmneziaFreeRuReverseCloak, - AmneziaFreeRuReverseAWG - - }; - public: - explicit CloudController(const QSharedPointer &serversModel, - const QSharedPointer &containersModel, QObject *parent = nullptr); + explicit ApiController(const QSharedPointer &serversModel, + const QSharedPointer &containersModel, QObject *parent = nullptr); public slots: - bool updateServerConfigFromCloud(); + bool updateServerConfigFromApi(); signals: void errorOccurred(const QString &errorMessage); @@ -45,4 +34,4 @@ private: OpenVpnConfigurator::ConnectionData m_certRequest; }; -#endif // CLOUDCONTROLLER_H +#endif // APICONTROLLER_H diff --git a/client/ui/qml/Components/ConnectButton.qml b/client/ui/qml/Components/ConnectButton.qml index 757662aea..a0a57e6ad 100644 --- a/client/ui/qml/Components/ConnectButton.qml +++ b/client/ui/qml/Components/ConnectButton.qml @@ -138,7 +138,7 @@ Button { } onClicked: { - if (!CloudController.updateServerConfigFromCloud()) { + if (!ApiController.updateServerConfigFromApi()) { return }