#ifndef SERVERCOMMUNICATOR_H #define SERVERCOMMUNICATOR_H #include #include #include #include #include #include "../model/metadata.h" class bidding; class GenericCore; class ServerCommunicator : public QObject { Q_OBJECT public: explicit ServerCommunicator(GenericCore* core); bool sslSupported() const; QUrl url() const; void setUrl(const QUrl& url); void setServerConfiguration(const QString url, const QString email, const QString password); QString getUserLoginUrl() const; public slots: void onSendGetRequestTriggered(const GetRequestTypes type, QVariant data); void onGetReplySuccessful(const GetRequestTypes type, const QJsonDocument doc); void onGetReplyFailure(const GetRequestTypes type, const QString errorString); void onSendPostRequestTriggered(const PostRequestTypes type, const QByteArray data); void onPostReplySuccessful(const PostRequestTypes type, const QJsonDocument doc); void onPostReplyFailure(const PostRequestTypes type, const QString errorString); signals: void urlChanged(); void itemsFetched(const QByteArray jsonDoc); void itemsFetchFailure(const QString errorString); void postRequestSuccessful(const QByteArray responseData); void postRequestFailure(const QString errorString); void deleteRequestSuccessful(const QByteArray responseData); void deleteRequestFailure(const QString errorString); void currentBiddingRoundChanged(int round, bool isRunning); void biddingsChanged(QList biddings); void onlineUserAccountReceived(const QString mailAddress, const QString uuid, const QString accessToken); private: GenericCore* m_core = nullptr; QNetworkAccessManager m_netManager; std::shared_ptr m_restManager; std::shared_ptr m_serviceApi; QString m_email; QString m_password; // QString m_authToken; /// reply parser void currentBiddingRoundChangedReply(const QJsonDocument jsonDoc); void currentBiddingsReply(const QJsonDocument jsonDoc); void onlineUserAccountReply(const QJsonDocument jsonDoc); void mailInviteSentReply(const QJsonDocument jsonDoc); }; #endif // SERVERCOMMUNICATOR_H