#ifndef APICONTROLLER_H #define APICONTROLLER_H #include #include "configurators/openvpn_configurator.h" #include "ui/models/containers_model.h" #include "ui/models/servers_model.h" class ApiController : public QObject { Q_OBJECT public: explicit ApiController(const QSharedPointer &serversModel, const QSharedPointer &containersModel, QObject *parent = nullptr); public slots: bool updateServerConfigFromApi(); signals: void errorOccurred(const QString &errorMessage); private: struct ApiPayloadData { OpenVpnConfigurator::ConnectionData certRequest; QString wireGuardClientPrivKey; QString wireGuardClientPubKey; }; ApiPayloadData generateApiPayloadData(const QString &protocol); QJsonObject fillApiPayload(const QString &protocol, const ApiController::ApiPayloadData &apiPayloadData); void processCloudConfig(const QString &protocol, const ApiController::ApiPayloadData &apiPayloadData, QString &config); QSharedPointer m_serversModel; QSharedPointer m_containersModel; }; #endif // APICONTROLLER_H