66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
#ifndef SERVERCOMMUNICATOR_H
|
|
#define SERVERCOMMUNICATOR_H
|
|
|
|
#include <QJsonDocument>
|
|
#include <QNetworkAccessManager>
|
|
#include <QNetworkRequestFactory>
|
|
#include <QObject>
|
|
#include <QRestAccessManager>
|
|
|
|
#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);
|
|
|
|
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 fetchItems();
|
|
void postItems(const QByteArray& jsonData);
|
|
void deleteItem(const QString& id);
|
|
|
|
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(int round, QList<bidding> biddings);
|
|
|
|
private:
|
|
GenericCore* m_core = nullptr;
|
|
|
|
QNetworkAccessManager m_netManager;
|
|
std::shared_ptr<QRestAccessManager> m_restManager;
|
|
std::shared_ptr<QNetworkRequestFactory> m_serviceApi;
|
|
|
|
QString m_email;
|
|
QString m_password;
|
|
// QString m_authToken;
|
|
|
|
/// reply parser
|
|
void currentBiddingRoundChangedReply(const QJsonDocument jsonDoc);
|
|
void currentBiddingsReply(const QJsonDocument jsonDoc);
|
|
};
|
|
|
|
#endif // SERVERCOMMUNICATOR_H
|