amnezia-client/client/ui/controllers/cloudController.h
2023-10-23 23:55:01 +05:00

48 lines
1.2 KiB
C++

#ifndef CLOUDCONTROLLER_H
#define CLOUDCONTROLLER_H
#include <QObject>
#include "ui/models/containers_model.h"
#include "ui/models/servers_model.h"
#include "configurators/openvpn_configurator.h"
class CloudController : public QObject
{
Q_OBJECT
enum ServiceTypeId
{
AmneziaFreeRuWG = 0,
AmneziaFreeRuCloak,
AmneziaFreeRuAWG,
AmneziaFreeRuReverseWG,
AmneziaFreeRuReverseCloak,
AmneziaFreeRuReverseAWG
};
public:
explicit CloudController(const QSharedPointer<ServersModel> &serversModel,
const QSharedPointer<ContainersModel> &containersModel, QObject *parent = nullptr);
public slots:
bool updateServerConfigFromCloud();
signals:
void errorOccurred(const QString &errorMessage);
void serverConfigUpdated();
private:
QString genPublicKey(ServiceTypeId serviceTypeId);
QString genCertificateRequest(ServiceTypeId serviceTypeId);
void processCloudConfig(ServiceTypeId serviceTypeId, QString &config);
QSharedPointer<ServersModel> m_serversModel;
QSharedPointer<ContainersModel> m_containersModel;
OpenVpnConfigurator::ConnectionData m_certRequest;
};
#endif // CLOUDCONTROLLER_H